JAVA学习笔记

/**
基础篇
*/
1、第一个hello world
public class Number{
	public static void main(String[] args){
	System.out.println("hello world!");
	}
}
2、      byte 8位 
short 16位
int 32位
long 64位
float 32位
double 64位
3、八进制以0开头,16进制以0x开头

4、Java的标识符由字母、下划线、美元符号$和数字组成,开头不能是数字,同时标识符不能是保留的关键字

      在Java中允许使用汉字或者其他语言作为变量名

5、final 用于声明常量 一般大写 final Double PI=3.1415926D.
6、三种注释:单行,文档,多行
7、复合语句:
1>块语句{ }
2>if条件语句 if...else,,,
3>switch多分支语句
switch(表达式){
case 常量:语句;break;
default:语句;

}

8、增强for循环for(int item : array)。
9、字符串:
#构造:
1>String string = new String("hello world")
2>String string = new String(a,2,11) //2是起点,11是长度
3>String string = "hello world";
#查找
1>indexOf(String str)
2>lastIndexOf(Srting str)
/*如果lastIndexOf("")的话,则与length()一致*/
#获取
1>获取字符:char myChar = string.charAt(5);
2>获取字符串: substring(int beginIndex)
substring(int beginIndex,int endIndex)
#处理
1>去掉前导空格,尾部空格trim() 返回副本
2>字符串替换replace(char oldChar , char newChar) 返回副本
3>大小写转化str.toUpperCase()、str.toLowerCase() 返回副本
4>字符串分割
split(String sign) 返回String[]
split(String sign,int limit) 限定数组长度,返回String[]
5>字符串格式化
Data date = new Date();
String str = String("% tF",date);// 2015-03-01
#判断
1>是否以什么开始 startsWith(String prefix)
2>是否以什么结束 endsWith(String prefix)
3>是否相等       equals(String otherStr)
equalsIgnoreCase(String otherStr)
4>按字典序比较
compareTo(String otherStr) // >0 <0 ==0

5>判断string是否符合正则表达式regex
string.matches(regex)

/**

 频繁的改变字符串长度使用StringBuilder,应用于多个线程是不安全。这时使用StringBuffer

追加:append(content)

插入:insert(int offset , String string)

删除:delete(int starr , int end)

*/
10、数组
#一维数组
//创建
1> int arr[]; arr = new int[10];
2> int arr[] = new int[1000];
//初始化
1>int arr[] = new int[]{ 1,2,3,5 };
2>int arr[] = {  1,2,3,4,4  }
#二维数组
//创建
1> int arr[2][ ]; arr[0] = new int[10]; arr[1] = new int[2];
2> int arr[ ][ ]  = new int[1000][999];
//初始化
1> int arr[][] = {  {1,2,3},{4,4}  }
#二维数组的for循环
for(int x[] : arr){
for(int item : x){
}
}
#数组的填充
1>Arrays.fill(int[] arr , int value)
2>Arrays.fill(int[] arr , int fromIndex ,int toIndex , int value)
#数组的排序
1>Arrays.sort(int[] arr) 升序
2>Arrays.sort(int[] arr, int fromIndex, int toIndex) 
//是经过调优的快速排序算法
#数组的二分查找
//使用
1>Arrays.binarySearch(Object[]  arr , Object key)
//注意
1>必须先排序sort

2>如果不存在该key,则返回该值得插入点,例:-8

12、抽象类与接口<××都不能实例化××>
抽象类:含有抽象方法的类
接口:抽象方法的集合

13、对象的三大特征

1>封装性(核心)
    • 属性和行为封装起来
    • 私有的属性,公开的访问方法
    • 无需关注内部实现细节
2>继承性
    • 利用特定类之间的共同属性
    • 提高代码的复用性,缩短开发周期

//注意

this关键字-------->代表自己本身

super关键字------->代表父类

(1)子类继承了父类,继承属性和方法
(2)java中的继承是单继承,就是任何一个类只能有一个父类
(3)如果一个类没有继承任何类的父类是Object
(4)构造器是不能被继承,会默认的去找父类空的构造器,或者手动的指定子类调用那一个构造器——super(super关键字必须放到第一行)
3>多态性
重载(overload)
参数的个数或类型不一样(在一个类中)
覆盖(override)
如果一个父类有一个方法,子类中存在了一个一模一样的方法,称为方法的覆盖, 重写的条件是权限符越来越大!!!

#权限符说明
权限符 <<<<<<<<<<<<<<<可 以被 访 问 的 类>>>>>>>>>>>
private   同一类中
default       同一类中,同一包中
protected  同一类中,同一包中,不同包子类的
public        同一类中,同一包中,不同包子类中,所有的        

final

修饰变量-->常量

修饰方法-->不能重写的最终的方法

修饰类-->不能继承的最终的类
static
静态的方法,访问外边的变量,这个变量也必须是静态的;调用的方法也必须是静态的;不能使用this
静态数据与静态方法的作用是提供共享的数据和方法 
14、垃圾回收机制
#怎么确定对象是垃圾
1>对象引用超过了其作用范围,就是作用域

2>当对象被置为null

#Object类中有finalize方法,如果自己的类中定义了该方法,垃圾回收时首先调用该方法,下一次垃圾回收发生的时候,才真正调用该方法。

#垃圾回收机制不受人控制,具体执行时间不一定,同时也不能保证一定会被执行,例如Java虚拟机内存消耗殆尽的时候,也不会执行垃圾回收机制或者调用finalize()方法。Java提供System.gc()方法,强制调用垃圾回收器。

15、java.lang包中的Integer类、Long类、Short类,分别是以int、long和short封装的类,都是Number类的子类。
以Integer类为例
#构造方法
1> Integer(int number)
2> Integer(String str)
#常用的方法
1> compareTo(Integer anotherInteger) // >0 , <0 ,==0
2> equals(Object integerObj)        // boolean
3> toString()    //将一个Integer值返回String对象,最方便的还是integer+""转换成String
4> valueOf(String str); //字符串----->Integer
5> parseInt(String str);//字符串----->int
#提供四个常量
实际结果
1>MAX_VALUE int可取的最大值                  2147483647
2>MIN_VALUE int可取的最小值                  -2147483648
3>SIZE    二进制补码形式表示int值的位数          32
4>TYPE      表示基本类型int的Class实例            int

16、Boolean类

#构造方法

1> Boolean(boolean value)
2> Boolean(String str) //只有在str忽略大小是true的情况下是true,否则是false
#常用的方法
1> toString()    //将一个Boolean值返回String对象
2> parseBoolean(String str); //将字符串解析成boolean
3> booleanValue() //将Boolean对象对应的boolean返回
#提供四个常量
实际结果
1>TRUE  对应基值true的对象                                             true
2>FALSE 对应基值false的对象                                          false
4>TYPE  表示基本类型boolean的Class实例               boolean
17、数字处理类
# java.text.DecimalFormat 类
没有格式化的数字,遵循的表示原则 : 0.001 < |X| < 一千万,Java以常规小数表示,否则以科学计数法
18、Math类
Math.sin(double a)
Math.exp(double a) //e的a次方
Math.log(double a) //ln(a)
Math.log10(double a) //log10(a)
Math.sqrt(double a)
Math.pow(double a,double b) //a的b次方
#取整函数
Math.ceil(double a)
Math.floor(double a)
Math.round(double a)//四舍五入
Math.abs(double a) //取绝对值
Math.max(double a, double b)
Math.min(double a, double b)
#随机函数
Math.random() // 0<= X < 1.0
19、Random类java.util.Random()
#创建对象
1>Random random = new Random();
2>Random random = new Random(seedValue);//设置随机种子
#常用的随机方法
返回对应的随机数
1>random.nextInt(int n) // 0<= X
2>random.nextInt()
3>random.nextDouble()
20、高精度运算
java.math.BigInteger与java.math.BigDecimal类
两者都用于大数字,但是后者引入了小数的概念,可以取得任意精度的小数


你可能感兴趣的:(JAVA学习,java,学习,基础)