Java小知识

将级别高的变量值赋值给级别低的变量值,需要用到类型转换运算


构造方法无类型


Java的垃圾回收机制是Java虚拟机(JVM)提供的能力,用于在空闲时间以不定时的方式动态回收无任何引用的对象占据的内存空间(不是对象本身)。


多态,就是重载和重写

重载:方法名相同.返回类型,传入方法的参数不同(包括个数和类型).

重写:方法名相同,返回类型,参数均相同,必须发生在子类.


访问权限修饰符权限从高到低排列是public  ,protected  ,friendly(默认defult), private。

protected:可被同包的和不同包的子类访问

friendly:可被同一包的类访问


java不允许声明数组时指定数组元素的个数,如int[10] a;是错误的


遍历链表:Iterator<String> iter = list.iterator();

while(iter.hasNext()){

    String str = iter.next();


length数组长度   length()字符串的长度  size()泛型集合的元素个数


int boy = new int[4];//数组变量boy存储这些元素的首地址,该地址称作数组的引用


char[] str1=str.toCharArray()  将字符串转换成字符数组

String str=String.valueOf(char[])  将字符数组转换成字符串字类型

String.valueOf() 把其它类型转化为字符串类型

byte[] str2=str.getBytes()   将字符串转换成字节数组

int i=Integer.parseInt("123")   将数字字符串转换成int型数


System.arraycopy(a1,i1,a2,i2,n);  ---将a1数组从i1位置复制到a2数组的i2位置,长度为n

a1:源数组,a2:目标数组,i1 i2:开始复制的位置,n:复制的长度


str1.indexOf("c")---返回c在str1中的位置,没有则返回-1

str1.trim()去掉前后空格


str=str.substring(int beginIndex);是从beginIndex开始往后的子串;

str=str.substring(int beginIndex,int endIndex);截取str中从beginIndex开始至endIndex结束时的字符串,并将其赋值给str,其长度为endIndex-beginIndex;

beginIndex-开始处的索引(包括)   endIndex-结束处的索引(不包括)


str1.split(" ")---以(空格)拆分字符串,以字符串数组的形式返回

toUpperCase()小写――>大写    toLowerCase()

str1.replaseAll("i","n")将字符串中的i全部替换成n

str1.startsWith("*")判断字符串是否以*开头   endsWith()结尾

str1.equalsIgnoreCase(str2)不区分大小写的字符串比较

equals()两个变量是否是对同一个对象的引用,即堆中的内容是否相同。 

==比较的是两个变量的值是否相等,对于引用型变量表示的是两个变量在堆中存储的地址是否相同,即栈中的内容是否相同。


类方法(static修饰的静态方法)可通过类名直接调用


使用super可以从子类中调用父类中的构造方法、普通方法和属性


使用Integer包装类将字符串变为基本数据类型   如Integer.parseInt(str1);


匿名对象只在堆内存中开辟空间,而不存在栈内存的引用,使用一次就被GC回收


封装性:类中全部属性都必须封装,通过setter和getter进行访问


接口回调是指把实现某一接口的类创建的对象的引用赋值给该接口声明的接口变量,

那么该接口变量就可以实现被类实现的接口方法


为了使java不依赖于具体的数据库,java提供用于操作数据的API,即JDBC 


日期类

SimpleDateFormat format = new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒");

format.format(new Date());  //获取中国式的日期格式(format)


Math类(其中的方法都是静态的)

Math.sqrt()---开平方根  Math.round()---四舍五入(不保留小数部分) 

Math.max(10,13)---2个数求最大  Math.pow(2,3)---2的3次方


Random类

Random random = new Random();

random.nextInt();//返回一个随机整数

random.nextInt(n);//返回一个0至n之间的随机数(包含0,但不包含n)


BigInteger(大整数类)

BigInteger b1=new BigInteger("123456789");

BigInteger b2=new BigInteger("987654321");

b2.add(b1);//加法

b2.subtract(b1);//减

b2.multiply(b1);//乘

b2.divide(b1);//除

b2.max(b1);//取最大值


Arrays类

int a[] = {3,5,1,8,4};

Arrays.sort(a);//(升)排序

Arrays.toString(a);//以字符串输出数组

Arrays.binarySearch(a,2);//检索数据2在数组中的位置

Arrays.fill(a,0);//用0填充数组


正则表达式(regex---regular  express)

String regex = "[a-zA-Z]+";

String str = "Hello123";

if(str.matches(regex)){

    system.out.println("匹配");

}else{

     system.out.println("不匹配");

}


File类

File f = new File("d:"+File.separator + "test.txt"); //File.separator分隔符

try{

      f.createNewFile();   //创建新文件

}catch(IOException e){

      e.printStackTrace();

}


if(f.exists()){

      f.delete();   //若文件存在则删除文件

}


f.mkdir();//创建文件夹


String str[] = f.list();//列出给定目录中的内容


字节流(程序需要数据时要使用输入流读取数据,保存数据时用输出流)

输出流(FileOutputStream是OutputStream的子类):

OutputStream out = new FileOutputStream(f);//实例化一个输出对象

String str = "Hello World";

byte b[] = str.getBytes();//只能输出byte数组,所以将字符串变为byte数组

out.write(b);//输出内容,保存文件

out.close();//关闭输出流

输入流:

InputStream input = new FileInputStream(f);

byte b[] = new byte[1024];

input.read(b);

input.close();

System.out.println(new String(b));


字符流(FileWrite是Write的子类)

向文件中写入数据

Write out = new FileWrite(f);

String str = "Hello World";

out.write(str);

out.close();

从文件中读取数据

Reader reader = new FileReader(f);

char c[] = new char[1024];

int len = reader.read(c);

reader.close();

System.out.print(new String(c,0,len));



java异常类

throw和throws区别:

public Test() throws RepletException {

    try {

      System.out.println("Test this Project!")

    }

    catch (Exception e) {

      throw new Exception(e.toString());

    }

}

throws是用来声明一个方法可能抛出的所有异常信息

throw则是指抛出的一个具体的异常类型。

通常在一个方法(类)的声明处通过throws声明方法(类)可能抛出的异常信息,而在方法(类)内部通过throw声明一个具体的异常信息。


try-catch-finally语句执行机制:执行完try-catch语句后,执行finally子语句。

特殊情况:1、try-catch中执行return语句,那么finally语句仍然会被执行;

2、try-catch中执行System.exit(0),程序退出,则不执行finally子语句(包括其后所有语句)


t_0003.gif

你可能感兴趣的:(java)