黑马程序员<a href="http://www.itheima.com" target="blank">java培训</a>
1.java常见的开发工具
记事本,editplus,notepad
A. 美国Borland公司 JBuilder C++Builder DelphiBuilder
扩展性差,错误太多,昂贵
高度集成,JDK,Tomcat,开发智能性很高
B. 美国Sun公司自己的工具 NetBeans
免费的,开源,操作赋值,运行速度奇慢
C. IBM 出钱开发工具,eclipse 日蚀
开源,免费,扩展性很强
D. MyEclipse 在eclipse基础上,增加了很多的插件
EE ,SSH 全集成 收费
2.eclipse基本知识与操作
A.创建工程后,工作目录中的结构
src -- 存储是编写源文件 .java
bin -- 存储编译后的class文件
B.eclipse中的视图和视窗
B.1 PackageExplorer :展示出当前的项目中的全部内容包括:包,类,方法,成员
B.2 Outline 大纲视窗:展示当前类的全部内容,带有相形图标(类的属性) 不需要看类的具体内容,可以看出类中定义的是什么
B.3 还原初始化视图 -- window -- reset
B.4 Eclipse设置
1) 字体字号 -- Window -- preferences -- gen -- app -- color and fonts – java--java editor – edit
2) 调整控制台字体 -- Window -- preferences -- gen -- app -- color and fonts--- debug -- console font
3) 去掉默认的注释-- Window -- preferences -- java -- code style -- code templates—code,选择需要修改的内容,点击edit
4)去掉鼠标悬停效果 -- Window -- preferences -- java -- editor -- hovers-- 第一项勾去
C.eclipse快捷键总结
内容辅助提示:Alt+/
单行注释:Ctrl +/ 再按一次取消注释
多行注释:选中要注释的代码:ctrl +shift+/ 取消:ctrl+shift+\
移动当前行:alt+上下箭头
复制当前行在上或者下面:ctrl+alt+上或者下
自动导包:ctrl+shift+o
代码格式化:ctrl+shift+f
意见与建议:ctrl+1 处理红色小叉子问题
D.代码自动生成
D.1生成 get,set 自己定义变量成员:
代码空白处,鼠标右键---source—generate gettter or setter
D.2生成构造方法:
代码空白处,鼠标右键---source----- generate constructor
E.导入工程
已经存在的工程,从硬盘中,导入到eclispe中
在包资源浏览器中,鼠标右键,import -- general -- into workspace
F.Eclipse 调试功能,断点调试
当你的程序,没有任何错误,运行正常,但是结果和你设想的不同,或者运行但是没有结果,建议采用调试功能
debug模式:让你程序逐步执行,看到每一步执行的结果是什么,看到变量的变化情况
步骤:在有效代码中,左侧行号上,进行双击,行号多出一个蓝色点,这就是断点,当程序运行到这一行的时候,自动停止不动
F5单步进入 F6单步执行
F5可以进去方法, F6 直接走过这行代码
3. Jar包
JAVA的一种压缩包,多个类文件class,合并成一个压缩文件, 方便携带,和使用,可以直接使用里面的类的功能。以后,数据库驱动程序 XXX.jar文件,Struts Spring Hibernate 全部是jar文件提供
Object类
JAVA中所有的类,都直接或者间接继承Object类
class Person{}
Person类中,有几个方法 12个,父类Object,继承11个,自己有构造
Object类中,有构造方法,空参数,最大权限,第一行没有super()
private static native void registerNatives();
static{
registerNatives();}
native 关键字,修饰符,本地的意思
被native修饰的方法,非JAVA代码编写的方法,C++写的,作用,调用本机操作系统中的功能,没有方法体,保密,本地方法,运行内存本地方法栈
4.public int hashCode() 返回该对象的哈希码值
A.哈希码:JVM根据自己底层的一个计算方法(哈希算法),计算出的一个十进制数
这个数目前可以理解为对象的内存的地址
hashCode方法,所有的子类都具备
B. public final Class getClass() 返回值是一个类类型变量
Class类 返回的是这个类Class类的对象
类是描述对象,Class描述编译后的class文件的对象
C.public String toString() 返回该对象的字符串表现形式
所有的子类都有这个方法
在输出语句中,会默认调用对象的toString方法
默认调用toString只有输出语句中才调用,其他语句不调用
为什么输出对象,看到类名[email protected]+ 地址,Object类中toString方法的源代码 D.public String toString(){
return getClass().getName()+"@"+Integer.toHexString(hashCode()); }
E. getClass().getName() 第一个方法返回运行时类的class文件对象,对象调用方法getName获取类名
F.Integer.toHexString() 将方法中的参数,转成十六进制
hashCode() 简单的十进制数
G.目的,重写toString() 返回成员变量值,不考虑静态的成员变量,非静态
假如,类中,没有成员变量,不重写了
H.单独操作一个变量,赋值,取值也好,依靠get set
重写的toString() 将值做了输出,其他什么也没干
I. sop语句中,凡是打印对象的时候,看到的不是地址,类继承Object,重写toString方法
J. public boolean equals(Object obj) 用来比较对象,对象之间进行比较的
JAVA的工程师认为,所有的对象,都具备比较性
K.方法源代码 return this == obj ;
this是本类对象引用 obj方法参数,接收进来的对象
两个对象 == 比较的时候,比较的是内存的真是地址
一般对象都是new出来的所有,比较对象,结果一般都是假
L.重写equals方法,建立对象自己的比较方式,比较对象中的成员变量的值
M. protected void finalize() 当一个对象,在堆内存中,变成垃圾后
JVM启动垃圾回收期,收取这个对象,收取的时候,调用对象的、finalize方法
finalize final finally