周总结2016-04-17

一.  常用的4种异常:
(1).NullPointerException 空指针异常
(2).ArrayIndexOutOfBoundsException 数组下标越界异常
(3).InputMismatchException 输入不匹配异常
(4).ArithmeticException 数学运算异常
二.  java中所有类的父类:Obiect类
三.  Thowable分为Error类和Exception类,而Exception又分为IOException类和RuntimeException类(运行时异常类)
四.  函数:
System.out.print(e.getMessage());
System.out.print(e.toString());
五.  捕获异常:
try{当前有可能产生异常的代码,实行对它监控}catch(Exception e)catch(Exception e1){e.printStackTrace();}finally{}
原理:(1)异常范围一定是catch(前一个)小于catch(后一个)
(2)当产生异常的时候,马上会跳入到相应的catch里面,异常后面的内容不会被执行
(3)当try里面的内容被正常执行时,catch不会被执行,finally被执行
六.  抛出异常:(谁去使用,谁去处理的原则)
访问修饰符+可选修饰符+返回值+方法名+参数列表+throws Exception{}
throw 关键字,手动地异常,
throw new Arithmetic Exception();
七.  log4j log for java 日志记录工具

Mr.liu发下来的总结更全面(此处省略1000字)

八.  API:
1.System是一个final类,它的属性:in,out,err 例如:System.in
常用方法:(1).CurrentTimeMills 当前系统时间,返回值以毫秒为单位的当前时间
(2).exit 终止当前Java虚拟机 例如:System.exit(0) 0代表异常终止,推荐用return方法
(3).getProperties(string) 确定当前系统属性
(4).gc() Java中代表垃圾回收,由JVM自动完成,而C++中程序员手动删除
gc机制具体回收方法:
(4.1).判断对象是否“活着”:
(4.1.1). 引用计算算法:引用加1,不引用减1
(4.1.2).跟搜索算法:
在堆中找一个根对象,把没与根发生关系的干掉,一般以常量,静态变量为对象
(4.2).删除要去掉的对象:
(4.2.1).标记—清除算法
首先标记;其次删除
缺陷:内存零散,垃圾碎片多
(4.2.2).复制算法
缺陷:把原来可用内存减少一半
(4.2.3).标记—整理算法
2.Runtime类 getRuntime 获得当前运行
当前处理器数量:r.availableProcessors()
剩余内存数: r.freeMemory()
总内存数: r.totalMemory()
可用最大内存数:r.maxMemory()
3.字符串相关类
==对象的时候,判断的是内存地址值相等
例如:
String s="Hello";
String s1=new String"Hello";
String s2="Hello";
System.out.print(s=s2); //显示true
System.out.print(s=s1); //显示false
s.equals(s1) //判断内存地址里面字符串相等
常用字符串的相关方法:
length()
charAt() 返回指定索引处的值(指下标处的字符)
CompareTo(string+名字) 按字典顺序比较两个字符串的大小
Concat() 将两个字符串拼接
Contains 判断某个字符串里面包含某个字符
getBytes
isEmpty length() 为0时返回true
Split 拆分字符串
toLoverCase() 将字符串变小写
toUpperCase() 将字符串变大写
trim() 忽略前后空格,不能忽略字符串中的空格
Substring 截取字符串,原则:前包后不包
replace(old,new) 替换字符
4.StringBuffer类
从Object类来,可增长字符串
StringBuffer a=new StringBuffer ();
String a1=a.tostring(); //将a变成a1类型
常用的相关方法:
a.append() //追加到字符串后面
insert //加到字符串任何位置
5.StringBuilder类
JDK1.5版本以后,是StringBuffer的升级版
StringBuilder是线程不安全的,StringBuffer是线程安全的
性能比较:StringBuilder>StringBuffer>String
6.日期相关类:
来源:Date-java.util
来两个单词:Format 格式 Parse 分析,解析
Date d=new Date();
SimpleDateFormat sdf=new SimpleDateFormat("yyyy年MM月dd日HH时mm分SS秒");
String y=sdf.format(d); //将Date转换成符合格式的String类型
System.out.print(y);

例如:
package DateTest;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class Test007 {
public static void main(){
/* Date date=new Date(); //声明一个Date类
SimpleDateFormat s=new SimpleDateFormat("yyyy-MM-dd-HH:ff:SS");
String y=s.format(date);
System.out.println(y);*/

SimpleDateFormat s=new SimpleDateFormat("yyyy-MM-DD=hh:mm:ss");
String x2="2015-08-08=15:33:33";
Date a=null;
try {
a=s.parse(x2);
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println(a); 
}
}
7.Calendar 抽象类 Static类型
Calendar c =new GregorianCalendar();
Calendar的常用方法:
get方法 System.out.println(c.get(Calendar.YEAR));
add方法 c.add(Calendar.Day_OF_MONTH,-5); //往前移5天
after方法
getTime()
8.包装类
int—Integer类
char—Character类
byte—Byte类
short—Short类
long—Long类
float—Float类
double—Double类
boolean—Boolean类
为什么要装箱和拆箱??
装箱:(1).基础类型转为引用类型,引用类型有更多的方法
(2).有些操作规定了我们必须引用类型,而不能用基础数据类型
方式一:
int num=10;
Integer num2=new Integer(num); //手动装箱
方式二:
Int num3=new Int.Value of(num);
方式三:
Integer num4= num; //自动装箱
9.Pattern类
正则表达式:判断用户/判断数据是否满足你的表达式
例如:
package PatternTest;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class PatternTest007 {
public static void main(String[] args){
String a= "abc";
Pattern patter =Pattern.compile("^[abc]+$");
Matcher match=patter.matcher(a);
System.out.println(match.matches());
}
}
10.数学运算符类(random  随机类)
产生随机数,前包后不包
Math类—基本数学运算方法:
(1)abs()  返回绝对值
(2)Math.max(a,b)  比较a,b值大小,输出较大的值
(3)Math.min(a,b)  比较a,b值大小,输出较小的值
(4)round()  四舍五入
(5)floor  向下取整
(6)ceil()  向上取整
(7)random()  返回0到1之间的小数
九.  反射:(类的加载机制  Classloder)
运行时探究和使用编译时未知的类
反射就是操作Class类
第一种方式:
Dog d=new Dog();
Class d2=d.getClass(); //具体实例获得Class
第二种方式:
Class d3=Dog.Class();  //知道类的名字,但是没有实例对象
第三种方式:
Class d4=Class.forName("包名.类名");  //运行期动态传入
探究类的基本信息:1.Filed类:getDeclaredFiled  //获取属性
                  2.Method类:getDeclaredMethod  //获取方法
                  3.Constructor类:getDeclaredConstructor   //获取构造函数
Filed:   Field[] fields= d4.getDeclaredFields();//获取所有的属性
例如: //获取Dog类的属性1并且修改
/*Class d3=Class.forName("RandonTest.Dog");
 Dog d=(Dog) d3.newInstance();  //用Instance的方法实例化一个对象
 //Dog d2=new Dog();  //直接用new的方法实例化对象
Field[] fields= d3.getDeclaredFields();//获取所有的属性
for(Field field:fields){
 if(field.getName().equals("age")){
  field.set(d, "100");
 }
 
}*/
————————————————————————————
package RandonTest;

public class Dog {
 int age=20;
 String name="wangwanghao ";
 public void speaking(int s){
  System.out.println("hello"+"    "+name);
 }
 
 public void saying(){
  System.out.println("hello,say"+age);
 }
}

原文地址:https://www.cnblogs.com/chenyangpeng/p/5401175.html