精华内容
下载资源
问答
  • JAVA程序员必备网站

    2021-01-13 16:20:06
    程序员必备网站亲身推荐开发环境java开发软件程序员博客学习网站其他功能网站文档笔记平台(云笔记)思维导图工具 亲身推荐 开发环境 开发环境 网址 java jdk下载 ...

    亲身推荐

    开发环境

    开发环境 网址
    java jdk下载 lhttps://www.oracle.com/java/technologies/javase-downloads.html
    Maven下载 http://maven.apache.org/download.cgi
    Tomcat下载 https://tomcat.apache.org/
    Maven配置setting.xml中阿里云镜像仓库 https://yq.aliyun.com/articles/695269
    Mybatis参考文档 https://mybatis.org/mybatis-3/zh/configuration.html#
    Git下载 https://git-scm.com/download/win
    Git(国内镜像) https://npm.taobao.org/mirrors/git-for-windows/v2.30.0.windows.2/

    java开发软件

    java开发软件 网址
    IDEA下载网址 https://www.jetbrains.com/idea/download/#section=windows
    eclipse下载网址 https://www.eclipse.org/downloads/
    IDEA插件离线安装包下载 https://plugins.jetbrains.com/

    程序员博客学习网站

    程序员博客学习网站 网址
    B站视频(入门学习可以参考) https://www.bilibili.com/
    CSDN—全球最大中文IT社区(程序员成长必经网站) https://www.csdn.net/
    博客园(程序员成长必经网站之一) https://www.cnblogs.com
    牛客网(刷面试题,面试经验贴) https://www.nowcoder.com/
    GitHub(开源圣地,膜拜大神们的代码是怎么写的) https://github.com/
    码云(中国特色GitHub) https://gitee.com/
    力扣(算法能力刷题平台) https://leetcode-cn.com/
    菜鸟教程(各种技术的入门篇) https://www.runoob.com/
    廖雪峰的官方网站(生动有趣的学习技术教程) https://www.liaoxuefeng.com/
    编程狮-w3cschool(比较全的技术教程文档) https://www.w3cschool.cn/
    开源中国(程序员必备论坛之一) https://www.oschina.net
    书栈网(汇聚各种网络教程, 不用自己再去搜索, 跟着学就完事了) https://www.bookstack.cn/

    其他功能网站

    其他功能网站 网址
    百度翻译 https://fanyi.baidu.com/
    谷歌翻译 https://translate.google.cn/?hl=zh-CN&tab=TT
    17素材网(jQuery网页特效最全网页模板和网站模板jQuery代码) https://www.17sucai.com/
    包图网 https://ibaotu.com/
    大学生自学网站 http://v.dxsbb.com/
    JSON 解析器 https://c.runoob.com/front-end/53
    解析下载B站视频 https://www.guoxingjun.com/video/bilibili
    在线提取音频 https://www.apowersoft.cn/extract-audio-online

    文档笔记平台(云笔记)

    文档笔记平台(云笔记) 网址
    印象笔记 https://www.yinxiang.com/
    有道笔记 https://note.youdao.com/
    幕布 https://mubu.com/
    为知笔记 https://www.wiz.cn/
    石墨文档 https://shimo.im/

    思维导图工具

    思维导图工具 网址
    Xmind(跨平台、跨终端,拥有全功能的思维导图软件) https://www.xmind.cn/
    ProcessOn(免费在线作图,实时协作,支持流程图、思维导图、原型图、UML、网络拓扑图、组织结构图) https://www.processon.com/
    MindMaster(多平台思维导图软件,可用于Windows,Mac和Linux等桌面环境,也可以在线使用或在苹果,安卓等移动端上使用。) https://www.edrawsoft.cn/mindmaster/
    MindMeister(在线思维导图工具,已有超过1000万个用户。) https://www.mindmeister.com/zh
    百度脑图 (简洁的在线思维导图工具) http://naotu.baidu.com/
    展开全文
  • java_程序员必备

    2018-02-09 00:14:48
    博学:掌握J2EE 、Oracle 、WebLogic、Jboss、Spring、Struts、Hibernate 等流行技术,掌握软件架构设计思想、搜索引擎优化、缓存系统设计、网站负载均衡、系统性能调优等实用技术。
  • MySQL在过去由于性能高、成本低、可靠性好,已经成为最流行的开源数据库,因此被广泛地应用在Internet上的中小型网站中。随着MySQL的不断成熟,它也逐渐用于更多大规模网站和应用。非常流行的开源软件组合LAMP中的...

    前言

    MySQL在过去由于性能高、成本低、可靠性好,已经成为最流行的开源数据库,因此被广泛地应用在Internet上的中小型网站中。随着MySQL的不断成熟,它也逐渐用于更多大规模网站和应用。非常流行的开源软件组合LAMP中的“M”指的就是MySQL。这份PDF真的是很全面了,几乎包括了MySQL中所有操作。

    如何保证缓存和数据库一致性

    说了这么多缓存的必要性,那么使用缓存是不是就是一个很简单的事情了呢,我之前也一直是这么觉得的,直到遇到了需要缓存与数据库保持强一致的场景,才知道让数据库数据和缓存数据保持一致性是一门很高深的学问。

    从远古的硬件缓存,操作系统缓存开始,缓存就是一门独特的学问。这个问题也被业界探讨了非常久,争论至今。我翻阅了很多资料,发现其实这是一个权衡的问题。值得好好讲讲。

    以下的讨论会引入几方观点,我会跟着观点来写代码验证所提到的问题。

    不更新缓存,而是删除缓存

    大部分观点认为,做缓存不应该是去更新缓存,而是应该删除缓存,然后由下个请求去去缓存,发现不存在后再读取数据库,写入缓存。

    观点引用:《分布式之数据库和缓存双写一致性方案解析》孤独烟

    原因一:线程安全角度

    同时有请求A和请求B进行更新操作,那么会出现

    (1)线程A更新了数据库

    (2)线程B更新了数据库

    (3)线程B更新了缓存

    (4)线程A更新了缓存

    这就出现请求A更新缓存应该比请求B更新缓存早才对,但是因为网络等原因,B却比A更早更新了缓存。这就导致了脏数据,因此不考虑。

    原因二:业务场景角度

    有如下两点:

    (1)如果你是一个写数据库场景比较多,而读数据场景比较少的业务需求,采用这种方案就会导致,数据压根还没读到,缓存就被频繁的更新,浪费性能。

    (2)如果你写入数据库的值,并不是直接写入缓存的,而是要经过一系列复杂的计算再写入缓存。那么,每次写入数据库后,都再次计算写入缓存的值,无疑是浪费性能的。显然,删除缓存更为适合。

    其实如果业务非常简单,只是去数据库拿一个值,写入缓存,那么更新缓存也是可以的。但是,淘汰缓存操作简单,并且带来的副作用只是增加了一次cache miss,建议作为通用的处理方式。

    先操作缓存,还是先操作数据库

    那么问题就来了,我们是先删除缓存,然后再更新数据库,还是先更新数据库,再删缓存呢?

    先来看看大佬们怎么说。

    《【58沈剑架构系列】缓存架构设计细节二三事》58沈剑:

    对于一个不能保证事务性的操作,一定涉及“哪个任务先做,哪个任务后做”的问题,解决这个问题的方向是:如果出现不一致,谁先做对业务的影响较小,就谁先执行。

    假设先淘汰缓存,再写数据库:第一步淘汰缓存成功,第二步写数据库失败,则只会引发一次Cache miss。

    假设先写数据库,再淘汰缓存:第一步写数据库操作成功,第二步淘汰缓存失败,则会出现DB中是新数据,Cache中是旧数据,数据不一致。

    沈剑老师说的没有问题,不过没完全考虑好并发请求时的数据脏读问题,让我们再来看看孤独烟老师《分布式之数据库和缓存双写一致性方案解析》:

    先删缓存,再更新数据库

    该方案会导致请求数据不一致

    同时有一个请求A进行更新操作,另一个请求B进行查询操作。那么会出现如下情形:

    (1)请求A进行写操作,删除缓存

    (2)请求B查询发现缓存不存在

    (3)请求B去数据库查询得到旧值

    (4)请求B将旧值写入缓存

    (5)请求A将新值写入数据库

    上述情况就会导致不一致的情形出现。而且,如果不采用给缓存设置过期时间策略,该数据永远都是脏数据。

    所以先删缓存,再更新数据库并不是一劳永逸的解决方案,再看看先更新数据库,再删缓存这种方案怎么样?

    先更新数据库,再删缓存这种情况不存在并发问题么?

    不是的。假设这会有两个请求,一个请求A做查询操作,一个请求B做更新操作,那么会有如下情形产生

    (1)缓存刚好失效

    (2)请求A查询数据库,得一个旧值

    (3)请求B将新值写入数据库

    (4)请求B删除缓存

    (5)请求A将查到的旧值写入缓存

    ok,如果发生上述情况,确实是会发生脏数据。

    然而,发生这种情况的概率又有多少呢?

    发生上述情况有一个先天性条件,就是步骤(3)的写数据库操作比步骤(2)的读数据库操作耗时更短,才有可能使得步骤(4)先于步骤(5)。可是,大家想想,数据库的读操作的速度远快于写操作的(不然做读写分离干嘛,做读写分离的意义就是因为读操作比较快,耗资源少),因此步骤(3)耗时比步骤(2)更短,这一情形很难出现。

    先更新数据库,再删缓存依然会有问题,不过,问题出现的可能性会因为上面说的原因,变得比较低!

    (补充说明:我用了“先更新数据库,再删缓存”且不设过期时间策略,会不会有问题呢?由于先缓存和更新数据库不是原子的,如果更新了数据库,程序歇逼,就没删缓存,由于没有过期策略,就永远脏数据了。)

    所以,如果你想实现基础的缓存数据库双写一致的逻辑,那么在大多数情况下,在不想做过多设计,增加太大工作量的情况下,请先更新数据库,再删缓存!

    我非要数据库和缓存数据强一致怎么办

    那么,如果我非要保证绝对一致性怎么办,先给出结论:

    没有办法做到绝对的一致性,这是由CAP理论决定的,缓存系统适用的场景就是非强一致性的场景,所以它属于CAP中的AP。

    所以,我们得委曲求全,可以去做到BASE理论中说的最终一致性

    最终一致性强调的是系统中所有的数据副本,在经过一段时间的同步后,最终能够达到一个一致的状态。因此,最终一致性的本质是需要系统保证最终数据能够达到一致,而不需要实时保证系统数据的强一致性

    大佬们给出了到达最终一致性的解决思路,主要是针对上面两种双写策略(先删缓存,再更新数据库/先更新数据库,再删缓存)导致的脏数据问题,进行相应的处理,来保证最终一致性。

    缓存延时双删

    问:先删除缓存,再更新数据库中避免脏数据?

    答案:采用延时双删策略。

    上文我们提到,在先删除缓存,再更新数据库的情况下,如果不采用给缓存设置过期时间策略,该数据永远都是脏数据。

    那么延时双删怎么解决这个问题呢?

    (1)先淘汰缓存

    (2)再写数据库(这两步和原来一样)

    (3)休眠1秒,再次淘汰缓存

    这么做,可以将1秒内所造成的缓存脏数据,再次删除。

    那么,这个1秒怎么确定的,具体该休眠多久呢?

    针对上面的情形,读者应该自行评估自己的项目的读数据业务逻辑的耗时。然后写数据的休眠时间则在读数据业务逻辑的耗时基础上,加几百ms即可。这么做的目的,就是确保读请求结束,写请求可以删除读请求造成的缓存脏数据。

    如果你用了mysql的读写分离架构怎么办?

    ok,在这种情况下,造成数据不一致的原因如下,还是两个请求,一个请求A进行更新操作,另一个请求B进行查询操作。

    (1)请求A进行写操作,删除缓存

    (2)请求A将数据写入数据库了,

    (3)请求B查询缓存发现,缓存没有值

    (4)请求B去从库查询,这时,还没有完成主从同步,因此查询到的是旧值

    (5)请求B将旧值写入缓存

    (6)数据库完成主从同步,从库变为新值

    上述情形,就是数据不一致的原因。还是使用双删延时策略。只是,睡眠时间修改为在主从同步的延时时间基础上,加几百ms。

    采用这种同步淘汰策略,吞吐量降低怎么办?

    ok,那就将第二次删除作为异步的。自己起一个线程,异步删除。这样,写的请求就不用沉睡一段时间后了,再返回。这么做,加大吞吐量。

    所以在先删除缓存,再更新数据库的情况下,可以使用延时双删的策略,来保证脏数据只会存活一段时间,就会被准确的数据覆盖。

    在先更新数据库,再删缓存的情况下,缓存出现脏数据的情况虽然可能性极小,但也会出现。我们依然可以用延时双删策略,在请求A对缓存写入了脏的旧值之后,再次删除缓存。来保证去掉脏缓存。

    最后

    总而言之,面试官问来问去,问的那些Redis知识点也就这么多吧,复习的不够到位,知识点掌握不够熟练,所以面试才会卡壳。将这些Redis面试知识解析以及我整理的一些学习笔记分享出来给大家参考学习

    有需要这些学习笔记资料的朋友注意啦:戳这里即可免费领取

    还有更多学习笔记面试资料也分享如下(都可免费领取):

    都是“Redis惹的祸”,害我差点挂在美团三面,真是“虚惊一场”

    整理的一些学习笔记分享出来给大家参考学习

    有需要这些学习笔记资料的朋友注意啦:戳这里即可免费领取

    还有更多学习笔记面试资料也分享如下(都可免费领取):

    [外链图片转存中…(img-u7agTHFR-1619595535953)]

    展开全文
  • 半路出家的老java程序员的一点感悟 我是一个老java程序员,现在基本告别编码时代了,当然我现在还在写代码,不是为了老板写了,是自己在创业。回想起这么多年的人生路,作为一名老程序员感慨颇多,尤其是作为一名...

    半路出家的老java程序员的一点感悟

    我是一个老java程序员,现在基本告别编码时代了,当然我现在还在写代码,不是为了老板写了,是自己在创业。回想起这么多年的人生路,作为一名老程序员感慨颇多,尤其是作为一名半路出家的程序员,其中的滋味更是感慨万分。下面我就自己说说我的经历,也许会给未来码农一点启发。

    首先讲讲我是怎么成为一个程序员的,这个还真要说说中国的教育。我们国家的这种应试教育一直受到很多人的诟病,有的指责扼杀了学生的创造力,有的指责培养出来的学生就像火腿厂生产的香肠,都是一个味毫无特点而言。其实我们国家的应试教育有他的缺点,也有他的优点。缺点就不说了,我们都知道。优点是他对于家庭贫寒的人来说,提供了一个出人头地的上升通道。当然,现在这个社会能多赚钱过上好生活的方法很多,不止读书。当然,我也不是那种家庭贫寒,就是一个普通家庭而已。当初上学的时候懵懵懂懂,只是读书而没有思考过,将来自己能干什么。其实也不是没有思考过,确实是思考过将来能干什么,但是确实是不知道自己将来能干什么。

    初中毕业后,就上了个职专,当时还是学药的,跟计算机没有一毛钱关系,也不知道java。后来毕业后就直接家里蹲大学了,当时1998年工作特别难找,全国都在下岗。可能大家不知道我们国家改革开放的成本之一,就是1998年大批国企职工下岗再就业。我本来也不怎么喜欢医药专业,我自己性格的原因,比较内向,真的是干不了销售药品工作。我还做过几个月的保险推销员,真的努力过但一无所获。当然我的同学有几个现在都发财了,他们是医药代表,天天背着包挂个号,在医生的各个科室里医生塞回扣。我在上职专最后一年接触到了计算机,特别的喜欢,我终于找到了自己的一个兴趣点。于是在毕业后,还报了个《全国计算机等级考试(一级)》,大家不要笑话我,当时1998年,我是见过286的人,386,486,586这些机器我都见过,当时一台286要一万多,1998年的一万多,一般家庭根本买不起。我除了上课那么几个小时练习一下,平时也没有机会练习。后来我发现我家附近的商业大学的计算机房对外开放,286一块钱一小时,386二块钱一小时,就去那里练习五笔字型,现在我还是用全拼。

    尝试了很长时间找工作,发现自己真的什么都不会,在学校什么都没学到。能干的就是超市理货员的工作。当时找工作可真不像现在在网上投简历一样轻松。都是买门票去招聘会,招聘单位都是要大专、大本的学历,对我打击很大。最后决心吧学历补上,开始了高自考的艰辛历程。当时自考专科学的是《计算机应用》,本科是《计算机网络》,说实话真的不容易,我确实是下了苦功夫才一门一门考过的,主要是基础太差了,最大的障碍是英语。直接学大学英语真的太吃力了,我直接买了一套高中英语+辅导,自学了3个月,把三年的高中英语学了一遍。当然,高考绝对不行,我只是学习了语法,单词,能够把课文都看懂。然后开始学习公共英语三级,当时公共英语三级是自考指定的教材,我也真实服了,教我们英语的是一个南开大学的研究生,很多发音都不准,后来被学生给投诉了。我还报考了一次大学英语四级,当时四级还是让社会报考的,现在只能在校大学生报考了。当时深受打击,首先听力一句没听懂,然后就是不管是选择题,还是阅读什么的,我基本上一句话都没看懂,每句话里面都有不认识的单词,我的词汇量根本应付不了这种考试。最后我记得是30多分。骑车回家的路上感觉整个人都是晕的。还有一门课程就是物理,因为没有高中基础,学起来感觉非常吃力,似乎初中的物理知识一点都不管用了,还有高数、线性代数、计算方法、模拟与数字电路、都是让我头疼的,但是我都全力以赴的一一攻克了。最后,找了个天津工业大学的学生,他自己写了个家教网,.Net的,我花了100块钱变成了我的毕业论文,终于顺利毕业了。

    当时真是太高兴了,终于拿到了自己梦寐以求的本科学历。其中付出的辛苦,只有自己知道。每天要骑一个多小时的路去听课,而且由于南大那个讲信号与系统的老师实在太差了,根本听不懂不说还是个结巴。我和同学一起跑到天津师范大学去蹭课。要说天津师范大学的老师讲的真不错,人也不错,其实他是看出来我们是蹭课的,但看到我们这么臭不要脸的,下大雪都不迟到,也就睁一只眼闭一只眼了。

    后来找工作依然受挫,因为我还是什么都不会,大家也都知道,大学里学的根本找不到工作的。于是我又迷茫了,也许大家会问,去报个培训班啊。因为当时我真的对培训班很抵触,我觉得那里根本也学不到什么东西,就一直没有去,自己买了几本书,还真的学不会。纠结了很长时间,当时压力也确实大,亲戚朋友都看着,毕业了,怎么一点动静也没有啊,是不是个书呆子什么都干不了啊。最后实在没办法了,在网上查了查java培训,结果找到了《中软培训》,于是我跳入了一个圈套,我个人认为,这是我一生当中,到目前为止,上过的最大的一个当。当然,我在这里绝没有贬低或者诽谤java培训机构的意思,我只是把我的亲身经历写出来,真实的经历而已。

    2003年春节刚过,我就踏上了北漂求学之路。当时我妈是很反对我去北京上这个培训班的,我爸爸倒是支持,之前也去考察了学校,交了学费。不管怎么着,我还是去了。因为我确实是对软件开发感兴趣,想从事这份工作。东西真不少,带着被枕头等,我还记得,当年天津到北京还没动车,是那种双层的日本进口的火车。坐日本人的火车特别累,座椅是90度而且座椅特别短,一个半小时到北京在当时已经是神速了。

    到了北京找到培训机构老师,给介绍了个房东。当时是住在人民大学对面,就在三环边上的高层,一个两居室大屋6个人,小屋4个人上下铺。第一次领教了北漂是的蜗居生活,但是第一次离开父母,无拘无束,而且是学习自己的心爱的java开发,即将成为一名程序员,一想到这些还是非常激动。班里20多个人,有男有女,大家相处都很愉快。我在家里是自学过一些java基础课程的,我买了本java基础的书,我这个人有点强迫症,就是总是想称为技术大牛,遇到问题总是打破砂锅问到底的,我还买了一本英文书《JavaTutorials》官方教材,我对着中文翻译过来的教材,大大提高了专业英语的水平,但是我花了很长时间自学的东西,被那个讲基础的老师2天就讲完了,讲的特别快,半个月后我就感觉很迟了,有点跟不上了,当时讲课,一点视频都没有,老师也不给录制,所以有时候他演示过去忘了就想不起来了。我到下个班重听了一边。我发现非常坑爹的是,前面基础+servlet+jsp马马虎虎还差不多。到了后来学struts1也不多,尤其是田雪松老师讲的真不错。问题是hibernate和spring都没讲,然后就进入了项目实战,更奇葩的时候,项目实战根本没有项目,就一个不讲课的培训机构领导,让我们先做需求调研,让我们去找他做项目的需求,他就在办公室接待我们,所谓的办公室也是一大帮人在一起,然后让我们自己想,自己思考怎么做这个项目,自己写代码,也没有例子可以模仿,也没有实际的老师指导,对于我们这些新手还没入行的人来说难度也太大了。我还记得当时办理有个北京人,家住石景山说是原来是首钢的,特别能张罗,组织大家做项目,最后也不了了之全都找工作去了。就这样,我们学了个java基础+servlet+jsp+struts,连分页都没讲,开始找工作了。

    这也许是我当时找工作特别费劲的原因,原本以为培训完了可以找到工作,但是因为培训质量太差了,感觉中软的课程体系根本不完整,我去面试的时候被问到hibernate,spring都不会,而且javascript非常的薄弱。又一次面试,对方问我会不会js,我说不会,等面试结束我就上网查什么是js,原来js就是javascript,我去,配需从始至终,没有听老师说过一句js。学校当初是承诺给推荐工作的,其实我觉得现在培训承诺保就业,也不必太相信这些,关键是培训质量,培训质量的关键是老师,学东西最关键的是能跟一个好老师学习,才能真正学到本事,才能找到工作。学的差谁也保不了你,除非有路子。还有一次问我做过什么项目,我就把事先编好的故事说了一边。面试官问怎么做的登陆,我就说输入用户名、密码进行验证,成功就登陆,失败就返回登陆页面,说实在的,当时是非常心虚的,非常紧张的,虽然登陆的例子还是做过的。后来面试官又问,登陆以后把用户放哪,一下子把我问住了,放session啊,但是我没想起来。我擦了,我们一个项目都没做过,老师只举例做过那种整数+1,放到session,request,application中的那种计数器,从来没有举例说把用户放session里面,我的面试的过程,每次都会遇到新问题,我每次都进步一点点。还有问我会不会写树的,我说会,问我一个树节点有几个属性的,我又挂了。其他同学跟我差不多,我一边面试,一边自学,补齐javascript的短板。后来,我就在彷徨和恐惧中开始海投了,每天全选,群发,接电话,有是有一天好几个面试,都跑不过来了。一天下午,我下超市买东西,突然接到个电话说是用友的人事。当时兴奋异常,因为没有工作经验,我面试的都是小公司,这回不知道怎么回事,居然能被用友面试,大名鼎鼎的用友早就如雷贯耳。于是,马上跑回宿舍把简历熟悉了好几遍,因为项目经验都是编的,又好好的推敲了一下,琢磨人家会怎么问。把学过的知识点有温习了一下,怀着忐忑不安的心情,到了上地五街彩虹大厦面试。面试我的人叫什么现在记不清,记得他是个胖子,先是做了点笔试题目,做的什么我忘了,但是做的不好。后来他就拿着面试题挨个问我,回答的也不是很好。最后他看了看我的简历,说你是自考的,我说是,后来又让我写个查询的应用,我就写了个连接数据库,把表中所有数据都查出来,在页面上显示的程序写了一遍,然后就让我回去了。心情很沮丧,来的时候抱着很大的希望,面试完感觉没希望了。过了两天,突然接到用友人事的电话,让我去上班,我擦了,当时这就是狂喜,万万没想到,我居然走了狗屎运,能进大公司。还特意买了件新衬衫。到了用友又见到了面试,他很热情,对我说有个同事离职了,让我接手他的工作,于是开始熟悉代码,没有想到的是,用友用的是swing,我之前也接触过一点,但在学习的时候,老师一直强调这个用的不多,也没怎么讲,学的也不深,看起代码来特别吃力。当时因为没有经验,我看代码不是一边调试一边看,而是打开一个源代码文件,从头看到尾,现在想想,当初培训的老师也不教教怎么看源码。大概是过了一个星期,他给我布置任务让我改bug,我真是无从下手。他们项目也比较紧张,觉得我实在是不行,最后被辞退了,当然也没工资,就白吃了几顿中午饭。当时的心情真是糟糕到了极点,站在公交车上,多少路忘了,当时是没有空调的公交车,我却丝毫感觉不出热,当时正好是八月份,非常热,回去我就发烧了。宿舍的兄弟都不错,当天晚上没有开空调,我盖着棉被还感觉冷,他们一个个大汗淋漓的!现在回想起来,还是很感激那个用友的胖子,从面试的标准来说我肯定不合格,也许是他觉得我是自考的,应该有自学能力,才把我招进来,只是我水平太差,没有把握住机会。于是,又开始了海投。当时已经开始怀疑人生了。就在这个时候,又面试了一家小公司,是做什么机场信息系统的。面试的人好像水平也不怎么样,问我什么是多态,我就举了个例子,然后他就非常惊讶的样子说,我面试了这么多人,这是我听到的最好的解释。然后就开始介绍他们公司,说公司虽然小,但是做的都是大项目,公司正需要像我这样的高手加入,让我带领大家完成机场的项目,我听了也是被震惊了,还问我什么时候可以入职,我说我要在考虑下。我心想,我是找人来带的,居然让我带人。后来面试了一家公司,是一个给某国企做系统的,国企的名字我就不说了,反正是跟国企有关系,要不然也不会能揽到这样的项目。经理问我java多态,我就给他解释了一下,父类的一个引用指向子类的一个实例。编译时…,运行时…,我刚说完他就哈哈大笑,说我说反了,我当时说了写什么,现在记不清了,但是我可以肯定,我绝对没有说反,经历是个结巴,这个我可以肯定。然后发生的事情出乎我的意料,他让我回去等通知,在回去的路上人事就给我打电话让我明天来上班,我擦了,工作来的太突然了!

    上班第一天没什么事情,就是装机器,搭建开发环境。我也很轻,因为哪天是星期五,星期六日就休息了。折腾了一上午,终于吧项目从cvs上下载下来并在本地运行起来了。当时版本控制就是用的cvs,哎,培训的时候cvs也没讲,我倒不是说这些东西不能自学,但是培训费花了9800,就学了这么点东西,根本不够用的,太不值了,感觉真的很坑。2003年的9800啊,不是一笔小数字啊!一看那些hibernate,spring的配置文件,马上就晕了。当时买了本孙伟琴的hiberate学的挺慢的,spring接触的也不多。终于快下班了,经理对我说,明天一起来加班吧,项目挺紧张的。我当时就晕了,我擦了,第一天上班就加班,我说,好,没问题!

    第二天早上4点多,我突然惊醒,其实我一晚上都没怎么睡觉,想想明天要写代码就特紧张,怕完不成任务又让人开了。穿衣服爬起来,在床上打开电脑,弄了本书开始研究分页,说实在的分页对于一个没有开发经验的java程序员来说,确实是有点难度的。我想做项目肯定会有分页的,到了6点多,终于研究的差不多了。洗漱吃早点,去上班了。果然,第一个任务就是一个模块的增删查改,我模仿其他模块做了一天,hibernate的分页还是比较简单的。就是js有点麻烦,有个地方搞不定,还让项目经理帮了下忙,下班的时候,经理对我说,怎么样,我说还行,写完了。于是,他检查了下我的模块,看了下代码,有对代码中变量的命名,代码注释等格式问题,做了指导。下班后,我长出了一口气,终于找到工作了。两个月就过了试用期,工资4000.

    这是我的第一份工作,万事开头难,工作中遇到了很多的困难,随时面临新的挑战,我觉得只要有毅力,这些困难都不是问题。两年后我跳槽了。去了一家国企做电力系统的项目。这个公司做了两年,感觉国企的氛围实在真的是受不了,项目很紧张,还要让你去开会,听什么领导讲话。讲我们集团以后要怎么怎么样,他大爷的,我手里的活明天要交差,干不完要加班,加班干不完要通宵,哪有功夫听你瞎BB。大大小小的会议特别多,领导说起话来特摆谱,我进公司两个多月,一直以为公司的副总是老总,公司的老总是副总。因为每次开会的时候,副总说起话来特像老总,老总到是笑嘻嘻的,还老征求副总的意见,但是副总说话都是命令式的,从来不问大家有什么意见。后来跟同事聊天才知道,我搞反了。也许是副总谱摆的太大了,最后让老总给撤了。

    2007-2008年正好赶上互联网的泡沫,整个世界经济危机,中国也受到影响。帝都的写字楼里,也经常听到有的公司在裁员,有的在降薪。我当时想着回天津,在家里找份工作,要赶紧搞对象,结婚了,家里也是催的紧。赚钱已经不是首要目标了,程序员都是单身狗,难道这就是宿命。我辞去了北京的工作回天津找工作。2008年的天津软件公司特别少,在网上就很少,工资也特别低,回家找了两个月打击很大,工资太低了,而且都在华苑软件园,特别远。很无奈,我又回到帝都,拿着锅碗瓢盆,再次北漂。

    后来在一个小公司干了两年,给农业银行做考试培训系统。突然一天接到老大的电话,就是我第一份工作的项目经理。他说他在做电商是技术负责人,让我过去帮他,特别高兴。去上班的头一天又见到了以前的同事,大家又在一起了。写到这里,我又打开了马萨玛索 (http://www.masamaso.com/),这个我曾经为之努力工作的网站,竟然发现显示全店升级,敬请期待!!!真不知道我走后发生了什么,是不是被马云挤垮了。在做电商项目的时候,确实应用了很多新技术,主要是解决高并发业务,比如秒杀之类的。当然那个时候主要是使用mysql的集群和主从同步,也就是在那个时候,我接触到了运维,并且参与到了网站的运维工作。当时使用的是Memcached作为缓存,ActiveMQ作为消息队列服务,单点登陆、首页静态化、lucene等技术都接触到了,并且在应用到了实际工作中。在这个公司我学的了很多java互联网开发的技术。而且我通过世纪佳缘,找到了另一半,2011年我结婚了,呵呵!!!

    2011年底,我离开了这家公司,我想向上努力,我需要得到得到质的提高。这回找工作我不再面试程序员了,而是系统架构师。终于,我找到了一份系统架构师的工作。具体什么单位不能说,因为是涉密的,我们上班都不能上网,也不能使用U盘。我亲自架构了整个系统,我在整个项目组中算年龄比较大的,有一个领导大家都叫他猴哥,可能跟我差不多,还有一个经验丰富的程序员,不过他是c语言的。我们需要将飞机传送到地面站的报文进行解析,这个是c语言来完成的,然后存放到数据库中,由java程序进行处理。运用了google地图+js制作了飞机航线系统,解决了晨昏线和飞机转向算法,当然,这个算法是请教了专家,我就是通过程序实现他的算法。我负责技术选型,当时选择的是ssm,ssm和ssh我纠结了好久,最终选择了ssm。事实证明我的选在是正确的,现在的系统基本是ssm的摒弃了ssh,struts2这种多进程的mvc框架注定了它不适合处理大并发项目。后台使用springscurity做的权限系统,我负责核心模块和基础工具类的开发,数据库的设计,服务器运维优化。权限系统是每个项目的核心模块,整个权限系统,单点登陆功能是我独立开发的。当时由于还没有出现dubbo,spring cloud这种分布服务是架构,所以采用的是Webservice作为解决方案,确实存在一定的性能瓶颈。xml传输还是有点慢。但是基本满足了项目的整体需求,最后通过了专家组的验收。这个项目做了五年。

    2016年底,我和我老婆回到了天津,我工作了这么多年。加班无数,年龄也大了,有了孩子。感觉自己不能向以前那么拼命了。我现在自己想从事java的培训,自己创业,将自己的工作经验传授给大家,同时降低大家的学习成本,少走弯路,再也不要走我的培训之路了,回想起来一个垃圾培训,实在太害人了。

    这些是我录制的视频

    java英文补习班:https://ke.qq.com/course/245618#tuin=154a0e15

    java基础:https://ke.qq.com/course/190434#tuin=154a0e15
    java数组: https://ke.qq.com/course/190439#tuin=154a0e15
    java嵌套类:https://ke.qq.com/course/190440#tuin=154a0e15
    java枚举类型:https://ke.qq.com/course/190442#tuin=154a0e15
    java面向对象:https://ke.qq.com/course/190443#tuin=154a0e15
    java注解:https://ke.qq.com/course/190445#tuin=154a0e15
    java Number类:https://ke.qq.com/course/190446#tuin=154a0e15

    Oracle 数据库

    Oracle 12c 安装 https://ke.qq.com/course/190469#tuin=154a0e15
    Oracle 11g 安装 https://ke.qq.com/course/183774#tuin=154a0e15
    SQL语言 https://ke.qq.com/course/190481#tuin=154a0e15
    PLSQL语言 https://ke.qq.com/course/190489#tuin=154a0e15

    以上是我真实的经历,回想起来这么多年,最遗憾的是,我一直没有在北京买房,当时思想还是保守,没有贷款 啊,后来房价飞涨,就更不敢买了。还好,2015年我贷款在天津,河北买了房子。终于跑赢了CPI,虽然没有大富大贵,结局还算不错。我觉得,只要努力就会有回报,我也祝福即将称为程序员的朋友,能够达到自己的人生目标。

    展开全文
  • 程序员必备网站

    2018-01-31 15:48:48
    海量编程题包含数据库和shell试题,支持 C, C++, Java, Python, C#, JavaScript...... http://www.geeksforgeeks.org/ 算法学习以及各类面试题。 http://lintcode.com/zh-cn/ 编程面试题在线训练平台。 ...

    https://leetcode.com/

    海量编程题包含数据库和shell试题,支持 C, C++, Java, Python, C#, JavaScript......

    http://www.geeksforgeeks.org/

    算法学习以及各类面试题。

    http://lintcode.com/zh-cn/

    编程面试题在线训练平台。

    http://codeforces.com/

    为计算机编程爱好者提供在线评测系统的俄罗斯网站。

    https://www.codeeval.com/

    为顶级开发程序员提供代码的练习和挑战。

    https://www.topcoder.com/

    每周都有有奖金的编码竞赛。

    https://www.codecademy.com/

    包含在线编程练习和课程视频。

    https://codehs.com/

    包含数据结构、游戏设计、动画类编程题。

    https://projecteuler.net/

    有590道题,会显示难度水平和提交完成率。

    --- https://www.bilibili.com/video/av9944802/     小李子_商城项目面试_演讲•公开课_科技_bilibili_哔哩哔哩

      https://www.bilibili.com/video/av9625682/      H5前端面试视频2016-12-23-2100-00_趣味科普人文_科技_bilibili_哔哩哔哩

    展开全文
  • 14个Java技术网站程序员必备

    千次阅读 2020-08-09 00:49:58
    但是老师不一定是人啊,可以是一些技术网站,一些书籍,一些帮助程序员学到想要技能的所有一切。 我就是标标准准的程序员出身啊,大学学习的是计算机应用,所以毕业后给自己的定位就是计算机软件开发,首选语言...
  • 我是灼灼,一只初学Java的大一金渐层。 向往余秀华和狄兰·托马斯的疯狂,时常沉溺于将情感以诗相寄;追逐过王尔德、王小波的...程序员应该知道的网站(N个New B的网站集合) 不定时更新,发现宝藏就会补充哒! 1.
  • 以下本人收集的 Java 开发者必备网站,这些网站可以提供信息、以及一些很棒的讲座 , 还能解答一般问题、面试问题等,或许你会认为有些网站适合任何水平的开发者,但是我认为::对于 Java 开发大牛来说,网站的好坏...
  • 安卓程序员必备网站

    千次阅读 2013-02-20 15:54:59
    这是一个老牌的IT信息网站,从名称上你就能看出,它是关注服务器端编程的,以JavaJava周边信息为主,不过最近它也有向客户端和 微软产品扩展的趋势。这个网站最初是以免费发放《Mastering Enterprise JavaBeans》...
  • 作为开发者来说 , 必备的除了对编码的热情还要有自己的一套技巧 , 另外不可缺少的就是平时学习的网站。作为一个Java开发者,学习最新技术和关注行业内容是你不断提升自我的有效手段。因此,小编会特别关注一些质量高...
  • 链接:https://blog.csdn.net/Java_wozuiqiang/article/details/76269835
  • JAVA程序员常用网址

    2021-04-02 16:39:32
    网址名 描述 网址 CSDN 程序员成长必经网站 ... 博客园 程序员成长必经网站之一 ... 程序员必备论坛之一 https://www.oschina.net GitHub 开源圣地,膜拜大神们的代码是怎么写的 http
  • Python实战社群Java实战社群长按识别下方二维码,按需求添加扫码关注添加客服进Python社群▲扫码关注添加客服进Java社群▲来自机器之心资源网站 Papers with Cod...
  • 程序员必备的国外IT网站

    千次阅读 2013-02-20 10:18:05
    程序员必备的国外IT网站 本文介绍了几个IT行业的国外的网站,都是相当好的网站。英文好的朋友们可以去看看,会有很大收获的。 1.TheServerSide www.theserverside.com/ 这是一个老牌的IT...
  • 2、StackOverFlow 技术问答(http://stackoverflow.com/)Stack Overflow 是一个与程序相关的 IT 技术问答网站。用户可以在网站免费提交问题,浏览...在问题页面,不会弹出任何广告、销售信息、Java 窗口等。 ...
  • 程序员必备调优工具/技术网站

    千次阅读 2020-03-22 19:09:53
    算法网站 LeetCode:刷题神器 LintCode:适合小白和懒人 VisuAlgo:可视化学习算法 Algorithm Visualizer:可视化代码算法 调优排错 Alibaba Arthas:Java诊断工具 Aliabba jvmGenerate: JVM 调优 PerfMa ...
  • 分享5个程序员必备编程自学网站,看到大家都没有用过 赶紧来看一看吧         小编是一个有着5年工作经验的java程序员,对于java,自己有做资料的整合,一个完整学习java的路线,学习资料和工具,...
  • 这是一个老牌的IT信息网站,从名称上你就能看出,它是关注服务器端编程的,以JavaJava周边信息为主,不过最近它也有向客户端和 微软产品扩展的趋势。这个网站最初是以免费发放《Mastering Enterprise JavaBeans》...
  • 对于新手开发者用户,如果想搭建一个简单的属于自己的网站,只要通过以下 5 个步骤就可以拥有属于您自己的网站(以下为必备过程,但是每个流程之间并没有必然的先后顺序): 注册/转入域名 域名注册是在互联网上...
  • 【Java学习+面试指南】 一份涵盖大部分Java程序员所需要掌握的核心知识: https://gitee.com/SnailClimb/JavaGuide 上面链接中关于linux相关的知识: 后端程序员必备的Linux基础知识.md 下面只是给出了一些比较常用的...
  • 一、前言 ...从各大招聘网站的招聘要求来看,第一条都明确说明需要扎实的Java基础。因此,一般笔试以及面试的第一轮,对基础的考察是比较多的。 其实我发现有很多开发几年了,基础知识都不扎实,比
  • 【IT168 应用】最近有些读者给我来信说很喜欢这个网站上的文章,并且也想通过翻译学习英文,他们询问我这些文章的英文... 这是一个老牌的IT信息网站,从名称上你就能看出,它是关注服务器端编程的,以JavaJava周边
  • Java程序员成功面试秘籍》是你参加热门Java职位面试的好帮手。面试专家和Java开发者Noel Markham联合Interview Zen网站从20 000多名参加真实IT公司面试的面试者中收集、编译了一些与Java相关的具有挑战性的题目和...
  • 3.JavaWeb:Java网站的开发,包括系统开发----【黑马程序员_超全面的JavaWeb视频教程vedio】 Mysql:配合Javaweb开发的小型开源免费的数据库----【MySQL从零开始学】 4.Struts2+spring+hibernate+Maven:这是三门中...
  • 相关阅读:腾讯开发微信花了多少钱?真的技术难度这么大吗?难点在哪里?鹿晗关晓彤公开恋情,是如何把微博服务器搞炸的? 附大型网站高可用架构和解决方案互联网技术(java框架...

空空如也

空空如也

1 2 3 4 5 ... 17
收藏数 333
精华内容 133
关键字:

java程序员必备网站

java 订阅