全真剑法、玉女心经、蛤蟆功、打狗棒法、九阴真经等等,样样都会,但没有一样是精通的,就能打一些杂兵而已,遇到顶尖高手立马被虐的节奏。建议楼主可以详细阅读某一项技术的源码,例如JavaSE,TreeMap、PriorityQueue等等集合API就要仔细研读;又如Hibernate的queryMap,它是怎么把对象拼成sql的,自己能否实现一个简单的queryMap。希望楼主能深入研究某一项技术或者方向或者是业务,不要刚刚学完hadoop,今天又学Spark,明天又Lucene,后天nosql,一周后又去学seo,然后技术没兴趣,又去学习电信、移动的业务了;所以不要看某些国内大公司的职位一列就10几个技术要求,既要你精通那个,又要你精通这个,他们现在赚钱是很多,但谁敢保证10年、20年之后他们还能这么风光?反而微软这样的顶尖公司只对员工有三个要求"编程好、数学好、态度好",这样的公司永远是处于不败境地,正如围棋大师吴清源这样教导聂卫平"搏二兔 不得一兔",坚持“专注与深入”才能造就人才。
字符串连接符:+ 条件运算符:x?y:z 运算符优先级:通过加括号来组织。简单方便
double d=Math.random()
int e=(int)(6*d) ; //1-6之间整数
switch()中的条件可以为int,或者转为int的byte,short,char.在jdk7中可以放置字符串。jdk的新特性。
带标签的break和confinue:goto的影子。
other: for(int i=0;i<1100;i++)
for(int j=0;j<i;j++)
if(a=b)
continue other; 从内层循环跳到外层循环可以用的到。
API文档
package包:包名:域名倒着写即可,再加上模块名,内部管理类。
JDK中主要的包(可以自己去研究一下):
java.lang包含一些核心类,如String,Integer,System,Thread常用功能。
java.net
java.io
java.util
特殊的注释,文档注释:/** 通过它来写注释。以便生成api文档。常用的注释标签:@Author,@version,@param,@return,@throws
这样便将JAVA文档和源码放在了一起,非常方便。使用JAVADOC生成API文档。项目右键->Export->java doc即可。
生成文档之后,别人的使用也非常方便。需要严格的按照文档注释来写。/**
Scanner类:接受键盘的输入:
Scanner scanner=new Scanner(System.in);
String string=scanner.next();
System.out.println(string);
java中除基本类型之外的变量类型都称为引用类型。对象是通过引用操作的。
内存分析:
栈:存放局部变量。自动分配的连续空间
堆(不连续):存放new出来的对象。
方法区(也是堆 的一部分):存放类的代码,常量池,static变量。
Student s1=new Student(); //通过类加载器加载Student类信息,加载后类信息保存在方法区中。
s1.name="高淇"
s1.study()
s1.sayHello("马士兵") //通过栈帧传递参数
Student s2=new Student();
s2.age=18
s2.name="老高"
s1.computer与c的值是一样的,都指向堆中Computer对象的地址。
垃圾回收机制:
对象空间的分配:使用new关键字创建即可。
对象空间的释放:将对象赋值为null即可。垃圾回收器将负责回收所有“不可达”对象的内存空间。
程序员无权调用垃圾回收器,但可以通过System.gc()通知GC运行,但并不能保证立刻运行。finalize是JAVA提供给程序员用来释放对象或资源的方法,但尽量少用。
也可以通过this调用其它的构造方法。
查看类继承层次的快捷键:鼠标放在类名上,然后ctrl+t即可。
重写toString方法:默认返回:包名+类名+@+哈希码
哈希码产生的依据:哈希码并不是完全唯一的,它是一种算法,让同一个类的对象按照自己不同的特征尽量的有不同的哈希码,但不表示不同的对象哈希码完全不同。也有相同的情况,看程序员如何写哈希码的算法。
在Java中,哈希码代表了对象的一种特征,例如我们判断某两个字符串是否==,如果其哈希码相等,则这两个字符串是相等的。其次,哈希码是一种数据结构的算法。常见的哈希码的算法有: 1:Object类的hashCode.返回对象的内存地址经过处理后的结构,由于每个对象的内存地址都不一样,所以哈希码也不一样。 2:String类的hashCode.根据String类包含的字符串的内容,根据一种特殊算法返回哈希码,只要字符串内容相同,返回的哈希码也相同。 3:Integer类,返回的哈希码就是Integer对象里所包含的那个整数的数值,例如Integer i1=new Integer(100),i1.hashCode的值就是100 。由此可见,2个一样大小的Integer对象,返回的哈希码也一样。