之前我常说,公司用什么技术我就学什么。但是对于java,我曾经一度觉得“学java是不可能的,这辈子不可能学java的。”结果,一遇到公司转java,我就不得不跑路了,因而乎,回头一看N家公司交过社保,连我本身都有点惊讶,竟然有这么多家公司了。对于java的梗,这是有历史原因的,大二的时候同一大波人去蓝杰参加java培训,当时一个空心的菱形怎么也写不出来,我写来写去就是一个实心的砖头,结果培训老师实在看不下去了,就说:“唉!你不适合搞java”,我看了下一同前去的几个同窗一会儿就都写出来了,搞得我一度开始怀疑本身的IQ。因而,我就跑去自学C#了,直到多年后,我才理解当时老师的话是:“你不适合作软件,而不仅仅是java”。没错,像咱们这样的大专狗学习能力实在不行,当时同届的一个培训班学生现在在腾讯撸java都年薪150w了,还有什么好说的呢?在天朝你撸.net估计撸到死都难以拿那么高薪水的。那培训班专门收罗中南、湖大、师大的高材生去参加培训,学历和IQ、学习能力都不是我这样的复读大专狗能够比的,唉!。还有一个没有去转java的缘由,就是看见我那些在深圳搞java的大学同窗,加班太恐怖了,动不动就是什么996,搞得我惧怕。可能由于都是大专狗,又是在撸码,没有去作java架构师吧,都是撸码的话,撸java和撸.net感受差异真不大,所谓的高薪都是加班加出来的。相比而言,.net工资低点,上班也轻松许多,就那么点东西,分分钟完成开发任务,有必要装加班么?php
搜了下网上的招聘,架构师不多有.net和PHP的,大多数都是java系,因此若是要作架构师的话,java是你不得不面对的。.net和php目前不过是在夹缝中生存,作后端,java是首选,那么前端,如今愈来愈专业愈来愈强大了,曾经瘦前端的时代已通过了,前端和后端已经彻底能够平起平坐,许多公司也都有了专门的前端,专业的人作专业的事,而.net和php却夹在中间,逐渐的失去了竞争优点。
css
如今不想再逃避了,Java就Java吧,因而乎,Java学习之路就开始了。html
我在学习java的时候老是喜欢拿它们俩进行比较,因为C#太过优雅,以至于学习Java语法的过程当中,无可避免的会各类吐槽。Java是参考的C++,C#是参考的C++和Java,继承了二者的一些语法优势,而后又添加了本身特有的许多语法糖。前端
.net转java 就像学自动挡车的人,要去开手动挡的车。手动挡好仍是自动挡好?
java
从.Net到Java学习第一篇——开篇mysql
从.Net到Java学习第二篇——IDEA and start spring boot程序员
从.Net到Java学习第三篇——spring boot+mybatis+mysqlweb
从.Net到Java学习第四篇——spring boot+redisredis
从.Net到Java学习第五篇——Spring Boot &&Profile &&Swagger2spring
从.Net到Java学习第六篇——SpringBoot+mongodb&Thymeleaf&模型验证
从.Net到Java学习第七篇——SpringBoot Redis 缓存穿透
从.Net到Java学习第八篇——SpringBoot实现session共享和国际化
从.Net到Java学习第九篇——SpringBoot下Thymeleaf
从.Net到Java学习第十篇——Spring Boot文件上传和下载
从.Net到Java学习第十一篇——SpringBoot登陆实现
从.Net到Java学习第十二篇——SpringBoot+JPA提供跨域接口
.......
说好的属性呢?
我呢个去?先来看下C#
public string Name { get; set; } public int Age { get; set; }
再来看下Java
public String name; public int age; public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; }
感受忽然回归到了C#2.0时代,整我的一会儿穿越了。更奇葩的是String,首字母必须是大写,而其它基本类型又是首字母小写。再看java内置的一些包,import java.util.Scanner;什么状况,为啥,有些单词是首字母小写,最后面的类又变成大写,这是大驼峰仍是小驼峰呢?
C#用:表示继承和实现,Java又是extends又是implements的,这个还比如较好理解只是麻烦一点,竟然把继承和实现分开了,关键字C#的base对应到了Java的supper。有一点奇怪的是Java的包和C#的命名空间仍是有一点区别的,Java的包还会在磁盘上产生对应的物理文件夹。
我又习惯性的var _age=2;,这下又报错了。神马状况?int _i=new int();,亚妮?又错了?要这样:Integer _i=new Integer(4);既然有了int为啥还要Integer呢,C#统统支持new int(),java要Integer才支持可空,而C#加上一个?就能够了。
Java8以后开始支持Lambda了,这个C#在不少年前就支持了的语法特性。
java的错误提示,真的跟成箴语差很少,这也太泛了吧,没有足够的经验,有时候一会儿让人摸不着头脑,不像.net错误提示巴不得告诉你代码直接该怎么样写。有时候,若是一不当心,搞错个配置,TMD半天时间可能就搭那里了。
千言万语先打住........
语法熟悉以后,我就去熟悉IDE,Java经常使用的IDE目前主要是:eclipse.exe、MyEclipse 2017 CI、IntelliJ IDEA Community Edition 2018.1.4 x64。
因而乎我无论三七二十一下载下来玩一下再说。eclipse绿色版免安装,MyEclipse要破解一下,IntelliJ IDEA暂时还没用,很差说。
如今就说下用eclipse和MyEclipse的感觉,从名字就能够看出它们是同出一脉的,因此使用上也差很少。刚下载下来,我觉得跟VS同样直接就能够来撸码了,才发现我又错了。配置、配置、配置。重要的事情说三遍,各类配置,估计是java的特性吧。各类配置我都弄好后,发现,智能提示又是一坨稀泥同样了。好吧,听说有快捷键,每次按Alt+/,我忽然想,只要看见键盘上,这两个按键磨没了,确定是java程序员吧。
我熟记了这两个IDE各类经常使用的快捷键,不知道是我手小了、手指短了的缘故仍是咋的,多操做几遍就手指抽筋,一只手按不完快捷键,两只手按的话,总有一只手要移动好远,按完再复位,对我这样十个手指头敲键盘的人来讲,实在是有点不适应。还有就是这些个快捷键常常和各类输入法的快捷键冲突,你得去干掉输入法的一些快捷键配置。而后我又开始试下HTML、css和js的智能提示,又尝试了文件引用,我拿鼠标单击去拖放,直接卡死不动了,才发现不支持,好吧我又手敲一下,手敲的智能提示又实在太弱了,原本0.1s能够搞定的一个文件引用,我硬是敲了好几秒,总算是松了口气。
VS里面许多快捷是组合快捷键,很难和其它软件的快捷键冲突,并且敲快捷键手指不须要移动,如Ctrl+K,Ctrl+S;Ctrl+K,Ctrl+U;等
我去问我那些搞java的同窗,他们怎么弄的,他们说就是这样弄的,习惯了就行了,感受还好啊。我很不理解,一样的功能我用VS编码效率会高不少啊,开发效率低,对开发人员来讲,意味着加班,难怪跟我那些搞java的同窗比起来,我加的班,可能不到他们的百分之一(我基本上一年都加不了几回班,大多数状况都是准点;还有一个重要的缘由,Java互联网公司多呗,如今.Net在许多互联网公司主要打打杂,传统企业有许多旧项目多是.net的),难道真的是没用对比就没有伤害吗?多是我对VS的使用太纯熟了,对eclipse和MyEclipse还不够熟吧。
java中有的.net基本上也有。h五、js、前端框架和数据库是共用的。又都是面向对象的高级语言,并且都是参考过C++,以后又相互模仿相互抄袭。至于各类框架,不过是各类设计模式的体现罢了,而设计模式对面向对象编程而言又是同样的。
.net | java |
通常处理程序 | Servlet |
aspx | jsp |
C# | Java |
spring.net | spring |
NHibernate | Hibernate |
asp.net mvc | spring mvc |
log4net | log4 |
Quartz.Net | Quartz |
Lucene.Net | Lucene |
NVelocity | Velocity |
Mybatis.net | Mybatis |
... | ... |
一、打开 MyEclipse -> Window -> Perferences -> Java -> Editor -> Content Assist,在右边最下面一栏找到 auto-Activation ,下面有三个选项,找到第二个“Auto activation triggers for Java:”选项
二、在其后的文本框中会看到一个“.”存在。这表示:只有输入“.”以后才会有代码提示和自动补全,咱们要修改的地方就是这里。把该文本框中的“.”换掉,换成“abcdefghijklmnopqrstuvwxyz.”,这样,你在MyEclipse 里面写Java代码就能够作到按“abcdefghijklmnopqrstuvwxyz.”中的任意一个字符都会有代码提示
http://www.javashuo.com/article/p-qzbuooen-my.html
JDK是32位,而IDE是64位所致。
<= abcdefghijklmnopqrstuvwxyz
配置完后要重启myEclipse
eclipse代码自动提示设置、如何配置eclipse的代码自动提示功能?
Ctrl+Alt+H:查看当前类在哪些地方被继承。
ctrl+shift+g:查看当前类在哪些地方被引用。
做为.Net程序员,我实在是不惯MyEclipse上面的各类主题,因而我本身作了一个跟VS类似的主题
主题包下载地址:https://download.csdn.net/download/zouyujie1127/10457891
下载主题包,而后打开myeclipse导入便可。
关于MyEclipse 2017文本编辑器设置html代码提示功能更换主题颜色
IntelliJ IDEA 编译Java程序出现 'Error:java: 无效的源发行版: 9' 的解决方案
Intellij IDEA 最新旗舰版注册激活破解(2018亲测,可用)
NSIS Error:运行安装包出现installer integrity check has failed错误解决方法
[Intellij] 在IntelliJ IDEA 中建立运行web项目
【问题解决】IDEA右键选择new新文件的时候没有JSP文件选项解决
IntelliJ IDEA开发Java web项目,JSP无代码提示或自动补全 问题
F9 resume programe 恢复程序
Alt+F10 show execution point 显示执行断点
F8 Step Over 至关于eclipse的f6 跳到下一步
F7 Step Into 至关于eclipse的f5就是 进入到代码
Alt+shift+F7 Force Step Into 这个是强制进入代码
Shift+F8 Step Out 至关于eclipse的f8跳到下一个断点,也至关于eclipse的f7跳出函数
Atl+F9 Run To Cursor 运行到光标处
ctrl+shift+F9 debug运行java类
ctrl+shift+F10 正常运行java类
alt+F8 debug时选中查看值
熟悉语法、IDE以后,剩下的就是其系统自身的各类类库,和其生态体系中的各类框架了。一开始下载IDEA的时候弄错了,下载的免费版,好多功能没有,后面从新下载了企业版。
接下来学习spring boot+mybatis+maven