Java基础内容整理 大概(非深入理解)

1 jdk配置以及开发工具安装与使用
1.1 eclipse包的使用
1.1.1 管理文件
1.1.2 可以重名
1.2 jdk环境变量配置
1.2.1 PATH
1.2.2 JAVA_HOME
1.2.3 CLASSPATH
2 变量、常量、字面量
3 八大数据类型
3.1 boolean 布尔型
3.2 char 字符型
3.3 short 短整型
3.4 int 整型
3.5 long 长整型
3.6 float 浮点型
3.7 double 双精度
3.8 byte 字节型
4 常用快捷键
4.1 Alt+/
4.1.1 提示
4.2 ctrl+shift+/
4.2.1 多行注释
4.3 ctrl+/
4.3.1 单行注释
4.4 ctrl+shift+Enter
4.4.1 在当前行的上一行插入一行
4.5 ctrl+d
4.5.1 删除一行
4.6 ctrl+alt+向下方向键
4.6.1 拷贝一行
4.7 alt+上下键
4.7.1 上下移动代码
4.8 ctrl+shift+t
4.8.1 搜索类
4.9 shift+enter
4.9.1 在某行的光标切换到下一行
4.10 ctrl+1
4.10.1 帮助
4.11 格式化:Ctrl+Shift+f
4.12 导包:Ctrl+Shift+o
4.13 查看源码:按住Ctrl+鼠标点击
4.14 搜索类:Ctrl+Shift+t
4.15 帮助键:Ctrl+1
4.16 把小写单词转为大写:Ctrl+Shift+s
4.17 把大写单词转为小写:Ctrl+Shift+y
4.18 Alt+Shift+s+c添加无参构造
4.19 Alt+Shift+s+o添加带参构造
4.20 Alt+Shift+s+r添加getXxx与setXxx方法
4.21 Alt+Shift+s+s添加toString方法
4.22 Ctrl+o:查询当前当前类的方法
4.23 Alt+Shift+a:多行一起写代码
5 算术运算符
5.1 算数
5.1.1 a++
5.1.2 ++a
5.1.3 b++
5.1.4 ++b
5.2 赋值
5.2.1 i=i+3 i+=3
5.2.2 a+""+b ab
5.3 关系
5.4 逻辑
5.4.1 &&短路
5.4.2 &
5.4.3 ||短路
5.4.4 |
5.5 位运算符
5.5.1 >>:缩小2(n)次方倍
5.5.2 <<:扩大2(n)次方倍
5.5.3 >>>:[无符号右移]只适用于正数,缩小2(n)次方倍
5.6 三目运算符
5.6.1 1?2:3 if(1){2}else{3}
6 循环
6.1 for
6.2 while
6.3 分支
6.3.1 单分支
if(条件){代码块}
6.3.2 多分支
if…else…
if…else if … else if… else
?:
6.3.3 instanceof String
判断字符串类型
6.3.4 switch…case
6.4 do…while…
7 数组
7.1 容器:指定数据类型的容器
7.1.1 int[] a={1,2,3,4,5}
7.1.2 int b[]=new int[5];b[0]=1
7.1.3 int c[]=new int[]{1,2,3,4,5}
7.2 特征
7.2.1 地址单元连续的存储空间
7.3 概念
7.3.1 数组长度:元素的个数
7.3.2 数组的索引[下标]:从0开始=数组的长度-1
7.3.3 数组的赋值
7.3.4 数组的遍历
7.4 数组的弊端
7.4.1 定容
解决方法:定义一个新数组,长度为old。length+1,old指向到新数组,通过arraycopy方法
7.4.2 类型受限制,but Object[]
8 方法
8.1 为了完成指定功能的代码块
8.2 要素
8.2.1 方法名,参数列表,返回值类型,访问修饰符,方法体
8.3 方法的重载
8.3.1 为了方法的多样性
8.4 特征
8.4.1 方法名相同,参数列表不同[参数个数、参数类型、参数位置]
8.4.2 与返回值类型没有关系
9 面向对象
9.1 构造方法
9.1.1 方法名必须与类名相同
9.1.2 不要声明返回类型
9.1.3 带参构造方法
创建对象的同时给对象的属性赋值
9.2 面向对象的内存分析
9.2.1 定义对象,当执行了new 对象()
JVM会为对象分配内存空间,但是对象的属性值为各自的默认初始值
9.2.2 栈区存放对象,堆区存放对象属性值
9.3 类和对象的理解
9.3.1 使用class定义类
9.3.2 类实际上是指一类具有共通属性和行为的对象的集合,起到一个模板作用
9.3.3 对象是类的一个具体实例
9.3.4 对象都具备类中的属性和功能
9.4 访问修饰符
9.5 面向过程以及面向对象的区别和联系
9.5.1 分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。
9.5.2 构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为
9.6 this关键字
9.6.1 代表当前类中正在使用该方法或者属性的对象的一个指针引用,它是一个隐士参数
9.6.2 this调用本类中的其他构造方法,调用时要放在构造方法的首行。
9.6.3 this调用本类中的属性
9.6.4 this调用本类中的其他方法
9.7 static关键字
9.7.1 和类共存亡,属于类级别[类生成的时候就会初始化静态的属性或者方法]
9.7.2 静态代码块内不能使用非静态的属性和方法,反之则可以
9.7.3 静态代码块在类加载(会将类加载到类加载器[classLoader])完毕后就执行了,并且只被执行一次
9.8 垃圾回收机制
9.8.1 java.lang.OutOfMemoryError
增加MaxPermSize值
增加最大堆内存到512M(-xmx参数)
9.8.2 垃圾回收器
分配内存
保证所有正在被引用的对象还存在于内存中
回收执行代码已经不再引用的对象所占的内存
9.9 setter和getter方法
9.9.1 setter:设置成员属性的值
9.9.2 getter:获取成员属性的值
9.10 特征
9.10.1 封装性
访问修饰符
public(公共的)
无访问修饰符
private(私有的)
protected(受保护的)
属性私有化,对外隐藏细节
9.10.2 继承性
提高代码重复使用率
父类的私有属性可以被继承的
关键字extends
静态的属性和方法是不能被继承,但是可以被所有对象访问并且修改
super关键字(代表直接父类)
引用构造方法,super(),必须放在第一行代码处,一般情况下,在无参构造方法中不会调用有参的构造方法。
引用父类其它方法
引用成员属性
Java中只支持单继承
实现多个接口
间接继承
组合
从某种情况下是可以替换继承的 has a:一个类中包含类外类的引用
final关键字
final修饰的类表示该类不能被继承
final修饰的方法不能被重写
final修饰的变量时常量(常量的变量名用大写,多个单词组成,中间用_分割,并且常量必须要赋初始值)
tostring
返回该对象的字符串表示形式
所有类都默认继承Object类
9.10.3 多态性
要有继承
要有重写
前提:必须在有继承的前提下
目的:体现子类的多样性、多态性
特征:方法名必须和分类方法名一致,参数列表也必须一致,返回值类型也要一样
访问修饰符不能小于父类的访问修饰符
父类引用指向子类对象
9.11 抽象类
9.11.1 特征
抽象类不能创建对象
可以有普通方法,也可以有抽象方法
抽象方法:需要在返回值类型前加abstract,不能有方法体
普通类实现抽象类,必须实现所有地抽象方法
创建抽象类的关键字需要使用abstract关键字
9.11.2 抽象类、普通类、接口的关系
普通类–抽象类:继承 extends
普通类–接口:实现 implements 可以实现多个接口
抽象类–接口:实现 implements
抽象类–抽象类:继承 extends
接口–接口:继承 可以多重继承
9.12 接口
9.12.1 接口使用关键字interface定义
接口必须是公开的
接口不能有构造方法
接口中的属性都是public static final类型的静态常量,并且只有一份,被所有子类所共享
9.13 内部类
9.13.1 成员内部类
可以无条件地访问外部类的成员
外部类中如果要访问成员内部类的成员,必须先创建一个成员内部类的对象
9.13.2 局部内部类
访问仅限于方法内或者该作用域内
9.13.3 静态内部类
不需要依赖于外部类
不能使用外部类的非static成员变量或者方法
9.13.4 匿名内部类
10 集合
10.1 本质:容器
10.1.1 规避了数组的弊端
10.1.2 Collection
List
ArrayList
底层原理是Object[]
查询速度快
增删改较慢
ArrayList():构造一个初始容量为十10个大小的空列表
ArrayList(int initialCapacity):构造具有指定初始容量的空列表
add
remove
LinkList
底层原理:双向链表
查询速度慢
增删改较快
Vector
线程安全、低性能
使用与ArrayList基本相同
Set
TreeSet
HashSet
没有get() 因为无序性,不能通过index获取元素
addAll() 添加另一个集合的数据
SortedSet
10.1.3 键值对集合Map<K,V>
HashMap:底层数据结构为数组+链表
hash值:将任意长度的数据经过hash算法得到固定长度的那个值
Hash表:将hash值放在一起组成一张表叫做hash值
Hashcode:将对象的物理地址值经过Hash算法得到一个整数值
使用hashcode的目的:为了提高查询速度
hashcode碰撞:不同对象的Hashcode相同,将不同对象会放在同一个位置的现象
TreeMap:底层数据结构为红黑树
LinkedHashMap:放入元素的顺序和输出元素一致
HashTable:与HashMap基本相同(二者区别)
HashMap没有继承Dictionary,HashTable继承了
HashMap允许key和value允许放入null键和null值,HashTable不允许
HashMap是线程不安全,HashTable线程安全
ConcurrentHashMap:当前比较流行的线程安全并且效率较高的集合
10.1.4 Collections类(专门用来操作集合的普通类)
reserve:反转集合内的元素
synchronizedList(map):将HashMap转换为线程安全的
synchronizedList(list):将HashList转换为线程安全的
sort:对集合元素进行排序(自然顺序),如果元素是对象时
实现Comparator接口,重写CompareTo方法
匿名内部类的方式,重写comparator接口
11 基本类型–包装类型
11.1 基本类型–>包装类型
11.1.1 装箱
Byte Short Integer Long Float Double Boolean Character
int a=1;Integer b=Integer valueof(a)
11.2 包装类型–>基本类型
11.2.1 拆箱
byte short int long float double boolean char
12 常用类
12.1 Math
12.1.1 ceil():向上取整>=
12.1.2 floor():向下取整<=
12.1.3 round():四舍五入
12.2 Random
12.2.1 random():随机数[0.0,1.0)
12.3 String:final类型
12.3.1 charAt():指定索引处的char值
12.3.2 str1.concat(str2):将str2连接到str1结尾
12.3.3 contains():是否包含
12.3.4 startWith()是否已str2开始
12.3.5 endWith():是否已str2结束
12.3.6 getBytes():转换为byte数组
12.3.7 indexf():返回str2第一次出现的 索引
12.3.8 subString():截取子串
12.3.9 replace():将字符串中str1全部替换为str2
12.3.10 split():分割字符串
12.3.11 toCharArray():将str2转换为字符数组
12.3.12 toUpperCase():将str2转换为大写
12.3.13 trim():只能去除首位空格
12.3.14 equals():比较内容是否相等
12.3.15 ==:比较引用
12.3.16 equalsIgnoreCase():乎略大小写比较相等
12.4 StringBuffer:线程安全的
12.4.1 append()追加字符串
12.4.2 reverse():反转字符串
12.4.3 insert():在指定位置插入字符串序列
12.5 StringBuilder:线程不安全该类方法与StringBuffer基本相同
12.6 Date
12.6.1 getTime():返回现在距离1970.1.1日晚上12:00:00的毫秒值(long)
12.7 Calendar:static
12.7.1 get(fild):返回年月日分秒
12.7.2 add():给年月日加定值
12.7.3 format():日期转字符串
12.7.4 parse():字符串转日期
12.7.5 before(when):如果此Calendar的时间在when表示的时间之前,则返回true;
12.7.6 after(when)
13 异常
13.1 常见异常
13.1.1 检查性、运行时性、错误
13.2 异常体系结构
13.2.1 所有异常都继承自Throwable类
13.3 自定义异常
13.3.1 子类不能抛出比父类更多的异常
13.4 异常处理
13.4.1 try{可能出现异常的代码}catch(异常情况){要抛出的异常}finally{必须执行的代码块,finally可以不写}
13.4.2 main方法后加上throws+异常情况
13.4.3 throw+异常情况:发生在代码块里面
14 IO流
14.1 java.io.File类(文件和目录路径名的抽象表示形式)
14.2 具体流
14.2.1 FileInputStream,FileOutputStream:读取文件较快
14.2.2 DataInputStream,DataOutputStream:读取基本数据类型较快
14.2.3 BufferedReader,BufferedWriter:高级字符流
14.2.4 InputStreamReader,OutputStreamWriter:桥接流,是字节流通向字符流的桥梁,并且可以指定编码
14.2.5 FileReader,FileWriter:不需要低级流进行构建
14.2.6 PrintWriter:打印流
14.2.7 ObjectInputStream,ObjectOutPutStream:对象流(将对象写入磁盘,写是序列化,读是反序列化)对象要实现序列化接口
14.2.8 RandomAccessFile:随机流
14.3 File类常用方法
14.3.1 File.separator:兼容不同的操作系统
14.3.2 exists:判断文件是否存在
14.3.3 isFile:判断文件是都是文件
14.3.4 isDirectory:判断是否是文件夹
14.3.5 length:测试文件有多少字节
14.3.6 canExecute:是否是可执行文件
14.3.7 createNewFile:创建一个新的文件
14.3.8 delete:删除文件
14.3.9 mkdirs:创建多层文件
14.3.10 isAbsolute:判断当前路径是否为绝对路径
14.3.11 list:返回一个字符串数组,这些字符串指定此抽象路径名表示的目录中的文件和目录。
14.4 IO流通道
14.4.1 目的
利用File类找到对应的文件,然后利用IO流操作文件内容
用于网络传输
14.4.2 按照流方向分类
输入流InputStream
输出流OutPutStream
14.4.3 按照操作的字节数分类
字节流:传输任何数据
字符流:只能传输文本
14.5 IO流体派
14.5.1 字节流: 可以传任何数据
读:InputStream
FileInputStream:读取文件快
FilterInputStream
BufferedInputStream
DataInputStream:读取基本数据类型快
ObjectInputStream
ByteArrayInputStream
写:OutputStream
FileOutputStream
FilterOutputStream
BufferedOutputStream
DataOutputStream
PrintStream
ObjectOutputStream
ByteArrayOutputStream
14.5.2 字符流:只能传文本
读:Reader
BufferedReader:高级字符缓冲流
InputStreamReader:桥节流,是字节流通向字符流的桥梁、可以指定编码
FileReader:不需要低级流进行构建
AtringReader
写:Writer
BufferedWriter
OutputStreamReader
FileWriter
PrintWriter
StringWriter

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值