Java学习笔记

以下为在下开始学习java的学习笔记,后期会进行整理

类名要与文件名相同

类 HelloWorld 是公共的,应在名为 HelloWorld.java 的文件中声明
public class HelloWorld

当命名一个public类时,保存时应该用和类名相同的名字保存,即要以HelloWorld 命名,要是不想改的话直接把public去掉就OK了。

String类

String类是唯一一个不需要new关键字来创建对象的类。使用的时候需要注意。
String s = "Hello World!";
判断字符串是否相等,必须使用方法equals,而==只能判断字符串是否保存在同一位置。
String类对象是不可变对象,然而,String类对象确实有编辑字符串的功能,比如replace()。这些编辑功能是通过创建一个新的对象来实现的,而不是对原有对象进行修改(类似的还有toUpperCase、toLowerCase、trim)。比如:
s = s.replace("World", "Universe");

synchronized关键字

线程同步

在多线程编程中,要尽力避免竞争条件(racing condition),即运行结果依赖于不同线程执行的先后。线程是并发执行的,无法确定线程的先后,所以我们的程序中不应该出现竞争条件。然而,当多任务共享资源时,就很容易造成竞争条件。我们需要将共享资源,并造成竞争条件的多个线程线性化执行,即同一时间只允许一个线程执行。
使用synchronized修饰方法。在Java中,同一对象的synchronized方法只能同时被一个线程调用。其他线程必须等待该线程调用结束,(余下的线程之一)才能运行。这样,我们就排除了竞争条件的可能。

关键代码

使用synchronized可以修饰一段代码,确保只有一个线程执行该段代码。使用方法如下:


synchronized (syncObj) {
...;
}

花括号中包含的是想要同步的代码,syncObj是任意对象。我们将使用syncObj对象中的计数器,来同步花括号中的代码。

你可能感兴趣的:(Java学习笔记)