synchronized出现在实例方法的时候,锁的一定是this对象
synchroized最好不要嵌套使用,不然发生了死锁很难找出问题。
类锁是直接把syncroized加到静态方法上,而不是把类写到synchronized代码块上
.setDaemon设置为守护进程。当用户进程结束后,就会自动结束。
try catch的使用
如何自己定义一个异常类并且使用?
接口的设置:
interfact 本接口的名字 [extends 其他的接口] {
具体的方法体...
}
synchronized()代码块后面的参数是什么意思?
是对象。如果传的是相同的对象,则是代表这些对象共用这一把锁。
通过相对路径得到绝对路径:String path=Thread.currentThread().getContextClassLoader.getResourse("路径").getPath();
注意:这里的相对路径的根是scr(但是其实真正的是在out下,只是为了方便才这么认为)
改进:String path=Thread.currentThread().getContextClassLoader.getResourseAsStream("路径");
得到Class文件的三种方法。
Class c1=Class.forname("完整类名"); //包括了包名的那种。例如java.util.Scanner
String s1=new String("hello");
Class c2=s1.getClass();
Class c3=s1.class;
资源绑定器:
ResourceBundle bundle =new ResourceBundle.getBundle("路径");
注意:使用这个的时候,我们要去掉路径的后缀
它是用来资源文件.properties的。
它在util包下。
它很苛刻,文件扩展名必须是properties ,并且不可以加扩展名。
ResourceBundle bundle =new ResourceBundle.getBundle("路径");
String className=bundle.getString("className");
以上是从路径下的properties文件中查找className的键,返回的值给了String类型的对象className。