知识总结

Java知识总结2
Java的常用类
Java中经常用到的类有三种
String 类
概念
String 的对象都放在 “池” 中,一旦创建String 对象其内容就不可改变,例如 拼接 字符串 时 不是改变了 原来的对象 而是在原来对原来对象的基础上 又新建了对象。
一个字符串就是一个string类的对象,可以调用string的方法
String 中的常用方法
与字符数组相关的方法
toArrayChar()
;把字符串分割成字符数组;例: char[] char = "hello".toArrayChar
CharAt()
indexOf()
返回首次出现的字符;例 调用 "hello“.indexOf(l)方法就返回 字符首次出现下标 2
lastindexOf()
返回最后一次出现的相同字符下标
length()
获取字符串长度
contains()
判断是一个字符串是否包含另一个字符串;例 “hello”contains("he") 返回 true
substring()
根据下标截取字符串,前闭后开,;例: “hello”.substring(0,4) 返回 “hell”
replace("f","F")
替换
startsWith() 
判断字符串是否以某个字符串开头
endsWith()
判断字符转是否以某字符串结尾
于英文相关的方法
toUpperCase()
转全大写
toLowerCase()
转全小写
"abc"equalsIgnorCase("ABC")
忽略大小写,比较相等
"abc".compareTo("abcd")
比较英文字符大小,先比字符,ACSII码相减,当长度不等时,长度与长度相减;
String 重点方法
trim 方法
去掉字符串前后空格
equals 方法
对任意一个字符串做非空判断(空与空串都要判断),且顺序不能变
split()方法 
用于对字符串拆分
正则表达式
概念
一个字符串模版,规定了字符串样式
用match()方法来判断是否符合正则表达式
模糊符号
概念
一种让正则表达式模版可塑性性变强的符号
三种括号
[    ] 
一个方括号代表一个字符,在内部书写有效的选择  [ 0-9]
{    }
表示正则表达式反复出现的次数 { m,n}至少m次 多至n次或 {m,}至少出现m次 至多不限 或 {m}只能出现m次
(    )
表示可选择的表达式   ([1-9] | [a-z])
符号
*
表示任意次
+
至少一次,无上限

零到一次
当需要进行大量拼接时可用,避免产生大量字符串对象
String  Builder
线程不安全,适用于单线程,内容可变的字符串类型,主要用途用在改变stringBuilder的内容上面
String Buffer
线程安全 ,适用于多线程,内容可变的字符串,主要用途用在改变stringBuffer的内容上面
append()方法 在字符串末尾加字符串
包装类(八种基本数据类型的包装类)
概念
专门为基本数据类型设计的类
分类
Byte
Short
Long
Integer
Float
Double
Char
Boolean
基本类(基本数据类型)
时间日期类
Date
重设时间格式
1)SimpleDateFormat  time=new SimpleDateFormat("yyyy-mm-hh  HH:mm:ss")
2)  String date
3) date = new Date(time);
Clender
Properties
功能
集合类
可变大变小
不占用连续空间
可存放Object类型,但操作文件时数据都会作为String
数据存放以 键 值 对 的形式存放
键 不可重复,唯一标识
可操作文件
配置文件
properties 属性文件
store(new FileOutputStream()) 写入
load(new FileInputStream())  读取
XML
Java反射
class文件在读取后都会放入Class对象中,一个对象只能放一个类的信息,放入的Class对象称为 类模版对象
概念
JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。
功能
可以在运行期探究使用 类其任意方法任意构造任意类
可以通过反射探究一个类
操作
获取Class 对象
三种方法
由实例对象获取; Class me = new I.getClass();无动态性
由类获取 Class me= My.class();无动态性
由类的权限定名获取,Class me = Class.forName("//类的全限定名") 有动态性
探究对象信息
探究属性
Field
Field []  meField = me.getFields() 只能得到所有的公共属性
FieldmeField = me.getField("//公共属性名") 只能得到指定的公共属性
Field [] meField = me.getDeclaredFileds()得到所有属性方法
Field meField = me.getDeclaredField("//属性名")得到指定属性
探究构造
Constructor
注意:因为代码放在代码段没有放入Class对象中,所以无法探究方法体,探究方法的时候同理
Constructor meConstructor = me.getConstructor(参数类型)  得到指定的公共构造方法
Constructor [] meConstructor= me.getConstructors()  得到所有的公共构造方法
Constructor meConstructor = me.getDeclaredConstructor(参数类型)  得到指定的构造方法
Constructor [] meConstructor = me.getDeclaredConstructors(参数类型)  得到所有的构造方法
探究方法
method
Method meMethod = me.getmethod(//实参) 只能得到指定的公共方法
Method [] meMethod = me.getmethods() 得到所有的公共方法
Method meMethod = me.getDeclaredmethod(//实参) 只能得到指定的方法
Method [] meMethod = me.getDeclaredmethods() 只能得到所有的方法
·无法探究方法体
通过信息操作对象
根据构造 Constructor 对象
My I = meConstrutor.newInstance(//实参) 获取
My I = (My)me.newInstance() 得到公共无参构造
根据Field 对象,对属性进行赋值和取值
Field eyes=me.getField(//属性名)
meField.setName("Dante"),设置要看访问修饰符
根据Method 对象 ,对方法进行调用
meMethod.invoke(//对象,参数)
invoke   //调用
Java多线程
进程
概念
一个自包容的运行程序,有独立的地址空间,可有多个进程运行即多任务
线程(Thread)
概念
在进程内部于进程共享地址空间,是基于进程的最小单位,线程在进程内再分多任务
子线程创建方式
继承实现
继承 Tread 类 重写 run()方法,调用 start()方法开启线程
接口实现
实现 Runable()接口并新建对象,把新建的对象作为参数放入 Thread的构造新建Thread对象,调用start()方法开启线程
生命周期
新建状态
就绪状态
在run()方法执行前,在start()方法调用后
运行状态
执run()方法
中断状态
原因
休眠 调用 sleep()方法
由于优先级关系,没有抢到CUP
优先级
最小1级
最大10级
默认5级
调用 setPriority(//级别)方法
级别指的是被执行的几率
阻塞 I/O事件
例如:用 Scanner 输入时
wait-notif机制
挂起    调用 yield()方法
死亡状态
在run()执行完后
安全性问题
概念
如果多个线程访问同一资源对象可能会造成该资源对象数据混乱,形成安全问题
解决方法
同步(锁)
关键字 synchronized
用在资源身上
用在线程上
线程执行效率会降低
问题
死锁
当两个线程访一对相互依赖的同步资源的时候会出现死锁问题
Java的集合框架(JFC)
概念
为了解决某一特定问题 预先设计好的一系列具有继承或实现关系的类与接口
集合类 Collection

List 有序或线性
概念:
指代存放在其集合里的元素是有顺序的,可以通过前一个元素找到下一个元素
泛型:
用来限制集合对象只能放入某种类型的名字
例:List<String> a = new Array<String>();
遍历:
将集合中所有所有元素访问一次

for循环
for each
Iterator 迭代器
Iterator<String > a = set.Iterator<String>();
while(Iterator a.hasNex()//次方法询问是否有下一个元素){ String s=it.next()//此方法取出来元素;  }
方法
add(Object a) .列表指定位置插入对象
addAll(int intdex ,Collection a) 将一个集合中所有对象插入到指定列表的指定位置
remove(int index ) 删除指定对象
get(int index) 获得指定位置元素
set(int index,Object a)替换指定位置的元素
size()获取元素个数
实现类
ArrayList
底层数据结构为数组
线程不安全
Vector
底层数据结构为数组
线程安全
LinkedList
元素存放不连续,一个元素的存储位置不只有元素本身还存有下一个和前一个元素的引用,为双向列表,后一个元素也可以找到前一个元素
底层数据结构为链表
Set  集
特点:元素不能重复
方法
add()
removed()
size()
实现类
HashSet
Set 根据两个对象的equals()方法和 HashCode()方法来判断两个对象是否重复;求equals返回true  HashCode的值要相同、
严格意义上一旦重写了equals方法也要冲重写hashCode方法
equals返回true hashCode返回值也要相同
equals返回false hashCode返回值不一定要相同
TreeSet
支持泛型
遍历
for each
迭代器
Map 映射
特点:存放元素依照键值对,不与许出现重复的键
方法
put(键,值),当键不重复的时候增加元素,当键重复时修改元素
get(键)
keySet()将Map中的所有键取出形成一个Set
values()将Map中的所有值取出形成一个Collection
remove()
containsKey(//键)
实现类
HashMap
TreeMap
遍历
for each
迭代器
算法类
Collections
升序排列   sort(// 集合)方法
混序 shuffle()
Arrays
操作数组类
比较器
Comparable
内部比较器
实现 Comparable<>接口,及实现compareTo(){}方法
Comparator
外部比较器
当外部比较器和内部比较器一起出现时,有外部比较器决定排序

死锁问题
生产者于消费者问题
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值