一、初始Java
1、一个Java源文件中最多只能有一个public的类【但,可以有多个class的声明】,当有一个public的类时,源文件名必须与此类名一致,否则,无法编译;如果源文件中没有一个public类,则文件名和类名没有一致性要求。
二、Java语法基础
1、基本数据类型:
2、数组a)byte---1字节,short--2,int--4,long---8【常量后面记得加上L或者l】,char--2字节,float--4,double--8,。
a)数组声明方式:两种:【不分配内存空间】
数据类型 数组名[ ]
数据类型[ ] 数组名
b)Java不允许在声明数组中的方括号内指定数组元素的个数,与c/c++不同。
c)创建一维数组:【创建数组时,才真正分配内存空间,所以需要指明元素的个数】
数组名 = new数据元素类型 [元素个数]
d)初始化一维数组:【求数组长度 int len =array.length;】【不是方法没有括号()】
int array[ ]= newint [ ]{1,2,3,4};或者
int array[ ]={1,2,3,4}
3、break和continue区别
a)break作用:跳出当前循环体或者程序体;
b)continue的作用:只能用在循环语句内部,功能:跳过该次循环,继续执行下一次循环。
4、Java处理大数据
a)Java中存在两个类BigInteger和BigDecimal,分别表示大整数类型和大浮点数类,这两个类可以处理任意长度的数字序列;
b)声明:
BigInteger bi1=new BigInteger();
BigInteger bi2=new BigInteger();
c)BigInteger和BigDecimal两个类没有重载“+”、“-”、“*”、“/”运算符;其有自己提供的方法。
加:bi1.add(bi2)
减:bi1.subtract(bi2)
乘:bi1.multiply(bi2)
除:bi1.divide(bi2)
取反:bi1.negate()
指数运算:bi1.pow(数字)
三、类与对象
1、创建对象:创建对象的过程叫做类的实例化。使用new来创建对象
2、构造函数:
a)在类实例化的过程中自动执行的方法叫做构造方法。不需要手动调用
b)构造方法的名称必须和类名相同,并且没有返回值
3、this关键字:
用来表示当前对象本身,或者当前类的一个实例,通过this关键字可以调用本对象的所有方法和属性。
4、包装类、自动拆箱和装箱
即int---》对应的Integer等。
5、封装:即将属性私有化;提供共有的方法,访问私有变量
声明private的属性,对其定义getXxx()和setXxx()方法,进行访问
6、单例模式:
a)单例模式,确保某一个类只有一个实例,并且自行实例化并向整个系统提供这个实例,此类成为单例类。【选择单例类主要为了,避免不一致状态】
b)单例类满足的特点:
单例类只能有一个实例;
单例类必须自己创建自己的唯一实例;
单例类必须给其他对象提供这一实例。
四、继承和多态
1、Java中的类只支持单继承,多继承是通过接口间接实现的;
2、使用super调用父类的构造方法
a)子类不继承父类的构造方法。在创建子类对象时,会先调用父类的构造器,初始化继承父类的成员,然后调用子类构造器初始化子类的成员。
b)子类如果想使用父类的构造方法,必须在子类的构造方法中使用,并且使用关键字super来表示,而且super必须为子类构造方法中的第一个语句。
3、抽象类
a)抽象类不能实例化【实例化交给子类来完成】,可以被继承
b)抽象方法必须由子类进行重写。
c)只要包含一个抽象方法的类,就必须定义为抽象类
d)抽象类可以包含具体的方法,当然也可以不包含抽象方法
4、多态:---一个接口,多种实现,就是同一事物,表现出的多种形态。
a)实现多态的两种方法:继承和接口
五、常用类库和集合
1、字符串String
a)String是不可变的字符串,StringBuffer是可变字符串,可以用append()进行拼接。
b)其中string、StringBuffer、StringBuilder三个类的区别,可以参考文章:http://blog.csdn.net/suibianshen2012/article/details/51326085点击打开链接
c)字符串转换为字符串数组:str.toCharArray()
例:String str=“Java”; char [ ] = str.toCharArray();
d)字符数组转换为字符串:String.valueOf(charArray)
例:char[ ] a = {'a', 'b' , 'c'}; String str = String.valueOf(a);
e)subString()----取子字符串
i)只有一个数字String sub = s.subString(4);表示从索引4开始,到字符串结束的中间子字符串
ii)两个数字,subString(v1,v2)---表示截取【v1,v2), 前闭后开的索引字符串
f)replace(‘a’, 'b')--替换字符串所指定的字符(串);都是用单引号进行索引a和b两个变量
g)equals()和equalsIgnoreCase()
区分equals()和==的区别:equals()比较的是两个字符串是否相同;==比较的是两个字符串对象在内存中的地址是否相同。
h)indexOf()和lastIndexOf()
i)indexOf()返回字符(串)在当前字符串中首次出现的索引位置,如果不存在,则返回-1
ii)lastIndexOf()从当前字符串的末尾开始向前查找首次出现的规定的字符(串)
i)startWith()和endsWith()
j)length()字符串长度
k)split()拆分字符串,得到字符串数组
l)trim()去除字符串开始和结尾的空字符;
2、StringBuffer
a)insert(索引,插入内容)在指定索引处,插入内容
b)appen()
c)delete(开始,结束);deletCharAt(索引)--删除指定位置的字符
d)setCharAt(索引,要变的字符)
e)reverse()将字符串反转。例如:str.reverse()
3、集合
a)set()集合中的对象不按特定的方式排序,不允许有重复对象存在。
b)list()集合中的对象安装插入位置排序,运行有重复对象。
4、集合排序sort()--要求所排序的元素类必须实现java.lang.Comparable接口
实例:Collections.sort(list);