图片来源于韩顺平教育
目录
学习java注意事项
java特点
1.java语言是面向对象的(oop)
2.java语言是健壮的。强类型机制,异常处理,垃圾自动收集等是java程序健壮的重要保障
3.java语言是跨平台的
4.java语言是解释型的,如php,java,javascript (解释性语言编译后的代码,不能直接被机器执行,需要解释器来执行)
javac是编译(把源码编译成字节码文件“class”)
java是运行(把编译出的字节码运行)
注意事项和细节
1.java源文件以.java为扩展名。源文件基本组成部分是类(class)。如hello.java里的hello类
2.java应用程序的执行入口是main()方法,它有固定的书写格式:
public static void main(String[] arg){}
3.一个源文件最多只能有一个public类,其他类个数不限
如果源文件包括public类,则文件名必须与类名相同
4.可以将main方法写在非public类中,然后指定运行非public类,这样入口方法就是非public的main方法
学习方法
DOS命令
DOS:disk operating system磁盘操作系统
常用的dos命令
dir :展示当前目录下面有什么。也可以加绝对路径
cd:切换盘符命令(切换根目录需要带开关 /D 再加盘符)
cd [绝对路径/相对路径] :切换到指定目录
cd.. :切换到上级目录
cd \ :切换到根目录
tree [需要查看的目录]:查看指定目录下的所有子目录
cls :清屏
exit :退出
md :创建目录
rd :删除目录
del :删除文件
copy 地址+文件名 目标地址+文件名:拷贝文件 例:copy c:hello.java f:\ok.java
move :剪切。使用方法和copy一样
java类的组织形式
基本数据类型与string类型的转换
自动类型装换注意和细节
强制类型转换
基本数据类型和string类型的转换
条件判断
switch细节
switch和if的对比
break语句细节
跳转控制语句continue
类与对象
可以把类当成结构体,但不能把结构体当做类
对象在内存中的布局
堆中的就是对象
属性/成员变量/字段(field)
属性细节
类与对象的内存分配机制及分配流程
方法(成员方法)
方法有点类似于C语言里的函数。把函数写到类里面(在类里面定义一个函数)
介绍
定义
使用方法
方法的内存调用机制分析
方法/成员方法重载
可变参数
一个方法它的参数个数没有确定就可以使用可变参数。和重载不一样(重载是根据输入参数,去匹配参数对应的方法)
概念
细节
练习
构造器/构造方法
在已经创建了对象的前提上(new 的时候同时调用构造器),使用改造器来完成对对象的初始化。构造器类似于一个类里面的方法。new 的时候调用这个方法,即创建了对象又同时初始化。
语法及需求
构造器细节:构造器重载
构造器本质类里面的方法
构造器细节:默认构造器/javap反编译
如果默认构造器被覆盖,想要继续使用默认构造器需要定义一遍默认构造器
this关键字
在对象里面有一个默认指向自己的常量this(this保存着自己这个对象的首地址)。方便调用自己
this内存理解
this的使用细节
IDEA快键键(可自定义)
Ctrl + J:显示所有快捷键的快捷键
Ctrl + D:复制当前行
Ctrl + Y:删除当前行
ALT + /:补全代码
Ctrl + /:注释当前行代码
ALT + enter:快速导入所需要的类
Ctrl + ALT + L:快速格式化代码
Ctrl + ALT + T:打开异常处理面板
Shift + f10:快速运行程序
ALT + insert :打开生成菜单(generate)->选择构造器(constructor)->勾上要添加的属性(Ctrl多选)
Ctrl + H :查看一个类的层级关系
Ctrl + B:快速定位到方法所在类(查看这方法的详细信息)
.var :自动生成变量名
模板快捷键(可自定义)
file->setting->editor->live templates->查看 (可以高效完成开发)
包
包的本质就是创建不同的文件夹/目录来保存类文件(有点类似C语言里面的库)
作用
包的命名规范
常用的包
包的细节
package与import的区别和注意事项
package:“包”,指:类所在的包(自我理解:自己定义的包用这个引用)
import:“引入”,指:引入类中需要的类。
如何引入包
访问控制修饰符
基本介绍
访问范围
面向对象编程的三大特征
1.封装
介绍及用处
封装的实现步骤
getxxx或setxxx 可以使用模板生成快捷键!
构造器和封装
用构造器可以绕过封装验证,所以可以把有验证setxxx写到构造器里面防止被绕
2.继承
介绍和语法
细节/访问权限
细节/自动初始化父类
细节/指定调用子类或父类的构造器(super)
细节/追溯Object(顶级父类)
继承的内存分布
super关键字
介绍
super调用细节
作用和this一样。this是从本类开始找,super是直接跳过本类从父类开始找。
this和super的对比
注:在构造器里面两者只能存一,只要其中一个显式设置了另外一个默认就不存在了
方法重写/覆盖(override)
细节
多态(polymorphic)
介绍:方法或者对象具有多种形态,是oop的第三大特征。是建立在封装和继承的基础之上的。
对象的多态就是可以被不同的编译类型(指针)引用,前提它们时有继承关系的。
具体表现
细节(向上转型)
细节(向下转型)
细节(多态中的属性/instanceof)
属性看编译类型,方法看运行类型,但是方法里面调用属性,优先找自己本类的,只有直接调用属性的时候看编译类型
java动态绑定(重要!重要!重要!)
当调用对象的属性时,是没有动态绑定的。
例:
多态参数
object类所包含的方法
== 与 equals 区别
==
equals
在判断的时候要去辨别这个equals有没有被重写(重要)
toString
默认返回全类名加十六进制的哈希值,可以在指定方法重写,没写就继承。
finalize方法
一个被释放的对象,在被回收前会调用这个对象的finalize方法
哈希值(hashCode)
断点调试(debug)
断点调试快捷键
利用debug查看源码
利用F7或强制进入来查看方法源代码。shift+F8跳出。