Java回炉学习(一)
参考至:韩顺平_循序渐进学java
1. JDK、JRE基本介绍
-
JDK全称(Java Development Kit,Java开发工具包) JDK=JRE+Java开发工具(java,javac,javadoc,javap) ,安装了JDK,就等于有了JRE
-
JRE(Java Runtime Environment Java 运行环境) JRE = JVM + Java 的核心类库[类]
-
JDK、JRE 和 JVM 的包含关系
(1) JDK = JRE + 开发工具集(例如 Javac,java 编译工具等)
(2) JRE = JVM + Java SE 标准类库(java 核心类库)
(3) 如果只想运行开发好的 .class 文件 只需要 JRE
2. 对象在内存中存在形式。
- 栈:一般存放基本数据类型(局部变量)
- 堆: 存放对象(Cat cat , 数组等)
- 方法区:常量池(常量,比如字符串), 类加载信息
-
方法重载:
-
java 中允许同一个类中,多个同名方法的存在,但要求 形参列表不一致! 比如:System.out.println(); out 是 PrintStream 类型
-
java 允许将同一个类中多个同名同功能但参数个数不同的方法,封装成一个方法。举例:
public int sum(int... nums){}
-
属性和局部变量可以重名,访问时遵守就近原则。
-
对象创建的流程分析:
3. IDEA中快捷操作
-
删除当前行, 默认是 ctrl + Y 自己配置 ctrl + d
-
复制当前行, 自己配置 ctrl + alt + 向下光标
-
补全代码 alt + /
-
添加注释和取消注释 ctrl + / 【第一次是添加注释,第二次是取消注释】
-
导入该行需要的类 先配置 auto import , 然后使用 alt+enter 即可
-
快速格式化代码 ctrl + alt + L
-
快速运行程序 自己定义 alt + R
-
生成构造器等 alt + insert [提高开发效率]
-
查看一个类的层级关系 ctrl + H [学习继承后,非常有用]
-
将光标放在一个方法上,输入 ctrl + B , 可以定位到方法 [学继承后,非常有用]
-
自动的分配变量名 , 通过 在后面假 .var [老师最喜欢的]
-
还有很多其它的快捷键…
4. 常用的包
-
java.lang.*
//lang 包是基本包,默认引入,不需要再引入. -
java.util.*
//util 包,系统提供的工具包, 工具类,使用 Scanner -
java.net.*
//网络包,网络开发 -
java.awt.*
//是做 java
5. 访问修饰符
java 提供四种访问控制修饰符号,用于控制方法和属性(成员变量)的访问权限(范围):
-
公开级别:用 public 修饰,对外公开
-
受保护级别:用 protected 修饰,对子类和同一个包中的类公开
-
默认级别:没有修饰符号,向同一个包的类公开.
-
私有级别:用 private 修饰,只有类本身可以访问,不对外公开
6. 驼峰命名法
- 包名:多单词组成时所有字母都小写:aaa.bbb.ccc //比如 com.hsp.crm
- 类名、接口名:多单词组成时,所有单词的首字母大写:XxxYyyZzz [大驼峰] 比如: TankShotGame
- 变量名、方法名:多单词组成时,第一个单词首字母小写,第二个单词开始每个单词首字母大写:xxxYyyZzz [小 驼峰, 简称 驼峰法] 比如: tankShotGame
- 常量名:所有字母都大写。多单词时每个单词用下划线连接:XXX_YYY_ZZZ 比如 :定义一个所得税率 TAX_RATE
- 后面我们学习到 类,包,接口,等时,我们的命名规范要这样遵守,更加详细的看文档
7.继承的深入讨论/细节问题
- 子类继承了所有的属性和方法,非私有的属性和方法可以在子类直接访问, 但是私有属性和方法不能在子类直接访问, 要通过父类提供公共的方法去访问。
- 子类必须调用父类的构造器, 完成父类的初始化
- 当创建子类对象时,不管使用子类的哪个构造器,默认情况下总会去调用父类的无参构造器,如果父类没有提供无参构造器,则必须在子类的构造器中用 super 去指定使用父类的哪个构造器完成对父类的初始化工作,否则,编译不会通过
- 如果希望指定去调用父类的某个构造器,则显式的调用一下 : super(参数列表)
- super 在使用时,必须放在构造器第一行**(super 只能在构造器中使用)**
- super() 和 this() 都只能放在构造器第一行,因此这两个方法不能共存在一个构造器
- java 所有类都是Object 类的子类, Object 是所有类的基类.
- 父类构造器的调用不限于直接父类!将一直往上追溯直到 Object 类(顶级父类)
- 子类最多只能继承一个父类(指直接继承),即 java 中是单继承机制。
- 不能滥用继承,子类和父类之间必须满足 is-a 的逻辑关系.