Java 重要知识点

package com.java.test;

public class Test1 {

	/**
	 * @&与&&区别:都表示与操作,都为TRUE是才为TRUE,只要有一个为FALSE,则为FALSE
	 * 			&&短路功能,&按位与
	 */
	
	public abstract class T{
		public void T1(){}
		abstract void T2();
		//static abstract void T3();abstract的method不可以是static的,因为抽象的方法是要被子类实现的,而static与子类扯不上关系
	}
	public static void main(String[] args) {
		String s = null;
		if(s!=null&&!s.equals("")){  //用&会报NullPointerException错误,用&&短路功能前面为FALSE,后面就不用再判断
		}
		System.out.println(0x31&0x0f);//&按位与,与0x0f与,取最低4个比特位
		
		final StringBuffer sb = new StringBuffer("so"); //final 修饰一个对象时,是对象引用不能改变,但值可以改变
		final String str = "hello";
		//sb = new StringBuffer("change object");
		sb.append(" good");
		System.out.println(sb);
		
		
		String s1 = "hello";
		String s2 = "hello";
		String s3 = new String("world");
		String s4 = new String("world");
		//==比较的两个变量的值是否相等,也就是比较变量所对应的内存中所存储的数值是否相同
		//equals比较的是两个独立对象中的内容是否相同,字符串的比较大多使用equals
		System.out.println((s1==s2)+" "+(s1.equals(s2)));//true  true
		System.out.println((s3==s4)+" "+(s3.equals(s4)));//false true   s2,s4中存储的是两个不同对象(new的对象都不同)的首地址
		
		
		//Math提供三种取整方法,ceil向上取整,floor向下取整,round四舍五入相当于Math.floor(x+0.5)
		System.out.println(Math.round(11.5)+" "+Math.ceil(11.2)+" "+Math.floor(11.8));
		System.out.println(Math.round(-11.5)+" "+Math.ceil(-11.2)+" "+Math.floor(-11.8));
		
		
	}

}



package com.java.test;

public class Test2 {
	private int t1;
	public void show(){
		class Inner1{
			public void show(){
				t1 = 3;
			}
		}
		
		Inner1 i1 = new Inner1();
		i1.show();
		System.out.println(t1);
	}
	public class Inner2{
		//static int i = 10; 内部类中不能定义静态成员变量
		public void show(){
			t1 = 4;		//内部类可以访问外部类的成员变量
			System.out.println(t1);
		}
	}
	static public class Inner3{
		public void show(){
			//System.out.println(t1);静态内部类不能访问非静态成员变量
		}
	}
	public static void main(String[] args){
		Test2 t2 = new Test2();
		Test2.Inner2 i2 = t2.new Inner2();
		Test2.Inner3 i3 = new Test2.Inner3();
		t2.show();
		i2.show();
	}

}

package com.java.test;

import java.util.Date;
import java.util.StringTokenizer;

public class Test3 extends Date {
	public static void main(String[] args) {
		new Test3().test3();
		
		String s = "This i=s\na\tt=est";
		//StringTokenizer tokens = new StringTokenizer(s);//java默认的分隔符是“空格”、“制表符(‘\t’)”、“换行符(‘\n’)”、“回车符(‘\r’)”。
		StringTokenizer tokens = new StringTokenizer(s,"=");
		System.out.println(tokens.countTokens());
		while(tokens.hasMoreElements()){
			System.out.println(tokens.nextElement());
		}
		
		//这说明javac编译可以对字符串常量直接相加的表达式进行优化,
		//不必要等到运行期去进行加法运算处理,而是在编译时去掉其中的加号,直接将其编译成一个这些常量相连的结果。
		String a = "a";
		String b = a+"b";
		String c = "a"+"b";
		System.out.println(b=="ab");	//false
		System.out.println(c=="ab");  //true
		

	}
	
	public void test3(){
		/**
		 * 由于getClass()在Object类中定义成了final,子类不能覆盖该方法并且返回此 Object 的运行时的类,
		 * 返回的 Class 对象是由所表示类的 static synchronized 方法锁定的对象
		 */
		System.out.println(super.getClass().getName());//com.java.test.Test3
		System.out.println(this.getClass().getName());//com.java.test.Test3
		System.out.println(super.getClass().getSuperclass().getName());//java.util.Date
		System.out.println(Date.class.getName());//java.util.Date
	}

}


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值