java基础<二>

全真剑法、玉女心经、蛤蟆功、打狗棒法、九阴真经等等,样样都会,但没有一样是精通的,就能打一些杂兵而已,遇到顶尖高手立马被虐的节奏。建议楼主可以详细阅读某一项技术的源码,例如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方法:默认返回:包名+类名+@+哈希码

哈希码产生的依据:哈希码并不是完全唯一的,它是一种算法,让同一个类的对象按照自己不同的特征尽量的有不同的哈希码,但不表示不同的对象哈希码完全不同。也有相同的情况,看程序员如何写哈希码的算法。

什么是哈希码(HashCode)
在Java中,哈希码代表对象的特征。
例如对象 String str1 = “aa”, str1.hashCode= 3104
String str2 = “bb”, str2.hashCode= 3106
String str3 = “aa”, str3.hashCode= 3104
根据HashCode由此可得出str1!=str2,str1==str3
下面给出几个常用的哈希码的算法。
1:Object类的hashCode.返回对象的内存地址经过处理后的结构,由于每个对象的内存地址都不一样,所以哈希码也不一样。
2:String类的hashCode.根据String类包含的字符串的内容,根据一种特殊算法返回哈希码,只要字符串所在的堆空间相同,返回的哈希码也相同。
3:Integer类,返回的哈希码就是Integer对象里所包含的那个整数的数值,例如Integer i1=new Integer(100),i1.hashCode的值就是100 。由此可见,2个一样大小的Integer对象,返回的哈希码也一样。
在Java中,哈希码代表了对象的一种特征,例如我们判断某两个字符串是否==,如果其哈希码相等,则这两个字符串是相等的。其次,哈希码是一种数据结构的算法。常见的哈希码的算法有:
1:Object类的hashCode.返回对象的内存地址经过处理后的结构,由于每个对象的内存地址都不一样,所以哈希码也不一样。
2:String类的hashCode.根据String类包含的字符串的内容,根据一种特殊算法返回哈希码,只要字符串内容相同,返回的哈希码也相同。
3:Integer类,返回的哈希码就是Integer对象里所包含的那个整数的数值,例如Integer i1=new Integer(100),i1.hashCode的值就是100 。由此可见,2个一样大小的Integer对象,返回的哈希码也一样。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值