/**
基础篇
*/
1、第一个hello world
6、三种注释:单行,文档,多行
7、复合语句:
9、字符串:
#权限符说明
权限符 <<<<<<<<<<<<<<<可 以被 访 问 的 类>>>>>>>>>>>
private 同一类中
default 同一类中,同一包中
protected 同一类中,同一包中,不同包子类的
public 同一类中,同一包中,不同包子类中,所有的
基础篇
*/
1、第一个hello world
public class Number{
public static void main(String[] args){
System.out.println("hello world!");
}
}
2、 byte 8位
short 16位3、八进制以0开头,16进制以0x开头
int 32位
long 64位
float 32位
double 64位
4、Java的标识符由字母、下划线、美元符号$和数字组成,开头不能是数字,同时标识符不能是保留的关键字
在Java中允许使用汉字或者其他语言作为变量名
5、final 用于声明常量 一般大写 final Double PI=3.1415926D.6、三种注释:单行,文档,多行
7、复合语句:
1>块语句{ }
2>if条件语句 if...else,,,
3>switch多分支语句
8、增强for循环for(int item : array)。switch(表达式){case 常量:语句;break;default:语句;}
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-011>是否以什么开始 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)
10、数组/**
频繁的改变字符串长度使用StringBuilder,应用于多个线程是不安全。这时使用StringBuffer
追加:append(content)插入:insert(int offset , String string)
删除:delete(int starr , int end)
*/
#一维数组12、抽象类与接口<××都不能实例化××>//创建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];//初始化#二维数组的for循环1> int arr[][] = { {1,2,3},{4,4} }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>必须先排序sort2>如果不存在该key,则返回该值得插入点,例:-8
抽象类:含有抽象方法的类
接口:抽象方法的集合
13、对象的三大特征
1>封装性(核心)
- 属性和行为封装起来
- 私有的属性,公开的访问方法
- 无需关注内部实现细节
2>继承性
- 利用特定类之间的共同属性
- 提高代码的复用性,缩短开发周期
//注意
this关键字-------->代表自己本身
super关键字------->代表父类
(1)子类继承了父类,继承属性和方法(2)java中的继承是单继承,就是任何一个类只能有一个父类(3)如果一个类没有继承任何类的父类是Object(4)构造器是不能被继承,会默认的去找父类空的构造器,或者手动的指定子类调用那一个构造器——super(super关键字必须放到第一行)
3>多态性
重载(overload)
参数的个数或类型不一样(在一个类中)
覆盖(override)
如果一个父类有一个方法,子类中存在了一个一模一样的方法,称为方法的覆盖, 重写的条件是权限符越来越大!!!
#权限符说明
权限符 <<<<<<<<<<<<<<<可 以被 访 问 的 类>>>>>>>>>>>
private 同一类中
default 同一类中,同一包中
protected 同一类中,同一包中,不同包子类的
public 同一类中,同一包中,不同包子类中,所有的
final
修饰变量-->常量
修饰方法-->不能重写的最终的方法
修饰类-->不能继承的最终的类
static
14、垃圾回收机制静态的方法,访问外边的变量,这个变量也必须是静态的;调用的方法也必须是静态的;不能使用this静态数据与静态方法的作用是提供共享的数据和方法
#怎么确定对象是垃圾
1>对象引用超过了其作用范围,就是作用域2>当对象被置为null
15、java.lang包中的Integer类、Long类、Short类,分别是以int、long和short封装的类,都是Number类的子类。#Object类中有finalize方法,如果自己的类中定义了该方法,垃圾回收时首先调用该方法,下一次垃圾回收发生的时候,才真正调用该方法。
#垃圾回收机制不受人控制,具体执行时间不一定,同时也不能保证一定会被执行,例如Java虚拟机内存消耗殆尽的时候,也不会执行垃圾回收机制或者调用finalize()方法。Java提供System.gc()方法,强制调用垃圾回收器。
以Integer类为例
#构造方法
1> Integer(int number)2> Integer(String str)
#常用的方法
1> compareTo(Integer anotherInteger) // >0 , <0 ,==02> equals(Object integerObj) // boolean3> toString() //将一个Integer值返回String对象,最方便的还是integer+""转换成String4> valueOf(String str); //字符串----->Integer5> parseInt(String str);//字符串----->int
#提供四个常量
实际结果
1>MAX_VALUE int可取的最大值 21474836472>MIN_VALUE int可取的最小值 -21474836483>SIZE 二进制补码形式表示int值的位数 324>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); //将字符串解析成boolean3> booleanValue() //将Boolean对象对应的boolean返回
#提供四个常量
实际结果
17、数字处理类1>TRUE 对应基值true的对象 true2>FALSE 对应基值false的对象 false4>TYPE 表示基本类型boolean的Class实例 boolean
# java.text.DecimalFormat 类
18、Math类没有格式化的数字,遵循的表示原则 : 0.001 < |X| < 一千万,Java以常规小数表示,否则以科学计数法
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.019、Random类java.util.Random()
#创建对象
1>Random random = new Random();2>Random random = new Random(seedValue);//设置随机种子
#常用的随机方法
返回对应的随机数
20、高精度运算1>random.nextInt(int n) // 0<= X <n2>random.nextInt()3>random.nextDouble()
java.math.BigInteger与java.math.BigDecimal类
两者都用于大数字,但是后者引入了小数的概念,可以取得任意精度的小数