java 关键字
来源:互联网 发布:sql语句中的引号 编辑:程序博客网 时间:2024/06/16 09:27
学习一门语言,请从关键字开始。
很惭愧,学java三年了。工作也一年多了。平时自诩学的还可以,但是最近才发现自己基础太烂,所以打算梳理、学习一下,
assert 断言关键字
描述:
断言,c/c++ 中也有相应概念
用法:
int intX = 80;System.out.println("intX is:\t" + intX);assert intX == 100 : "intX is 100 is false";System.out.println("passed");
注意事项, java默认关闭断言开关,需要用java -ea 类名 开启
volatile 易变关键字
“程度较轻的 synchronized
”;与 synchronized
块相比,volatile 变量所需的编码较少,并且运行时开销也较少,但是它所能实现的功能也仅是 synchronized
的一部分
用法
synchronized
实例
class TestVolatile {int intMoney = 0;TestVolatile() {new EarnMoneyThread().start();new SpendMoneyThread().start();new EarnMoneyThread().start();new SpendMoneyThread().start();new EarnMoneyThread().start();new SpendMoneyThread().start();new EarnMoneyThread().start();new SpendMoneyThread().start();}public synchronized void addMoney() {intMoney += 1;System.out.println("earned money ===, now money:\t" + intMoney);}public synchronized void minusMoney() {intMoney -= 1;System.out.println("spend money, now money:\t" + intMoney);}class EarnMoneyThread extends Thread {@Overridepublic void run() {for (int i = 0; i < 100; i++) {addMoney();try {Thread.sleep(5);} catch (InterruptedException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}}class SpendMoneyThread extends Thread {@Overridepublic void run() {for (int i = 0; i < 100; i++) {minusMoney();try {Thread.sleep(6);} catch (InterruptedException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}}
strictfp
描述
strictfp 关键字可应用于类、接口或方法。使用 strictfp 关键字声明一个方法时,该方法中所有的float和double表达式都严格遵守FP-strict的限制,符合IEEE-754规范。当对一个类或接口使用 strictfp 关键字时,该类中的所有代码,包括嵌套类型中的初始设定值和代码,都将严格地进行计算。严格约束意味着所有表达式的结果都必须是 IEEE 754 算法对操作数预期的结果,以单精度和双精度格式表示。
用法:
如果你想让你的浮点运算更加精确,而且不会因为不同的硬件平台所执行的结果不一致的话,可以用关键字strictfp.
instanceof
示例:
TestVolatile t = new TestVolatile();t = null;boolean isInstance = t instanceof Object;System.out.println("" + isInstance);
transient
描述:
java语言的关键字,变量修饰符,如果用transient声明一个实例变量,当对象存储时,它的值不需要维持。
Java的serialization提供了一种持久化对象实例的机制。当持久化对象时,可能有一个特殊的对象数据成员,我们不想用serialization机制来保存它。为了在一个特定对象的一个域上关闭serialization,可以在这个域前加上关键字transient。当一个对象被序列化的时候,transient型变量的值不包括在序列化的表示中,然而非transient型的变量是被包括进去的。
示例:
class TestTransient implements Serializable{private String username;private transient int age;TestTransient(String username,int age){this.username = username;this.age = age;}@Overridepublic String toString(){StringBuilder sb = new StringBuilder();sb.append("username:\t");sb.append(username);sb.append("age:\t");sb.append(age);return sb.toString();}}TestTransient tt = new TestTransient("张三", 120);System.out.println(tt.toString());ObjectOutputStream oos;try {oos = new ObjectOutputStream(new FileOutputStream("d://1.txt"));oos.writeObject(tt);oos.close();} catch (FileNotFoundException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}try {ObjectInputStream ois = new ObjectInputStream(new FileInputStream("d://1.txt"));tt = (TestTransient) ois.readObject();System.out.println(tt.toString());} catch (FileNotFoundException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (ClassNotFoundException e) {// TODO Auto-generated catch blocke.printStackTrace();}
线程池:
描述:对于java线程的控制,
示例:这里只是最基本的线程池应用
public class Main {/** * @param args */public static void main(String[] args) {ExecutorService es = Executors.newFixedThreadPool(1);MyThread mt1 = new MyThread("111111");MyThread mt2 = new MyThread("22222222");MyThread mt3 = new MyThread("33333333");MyThread mt4 = new MyThread("4444444444");es.execute(mt1);es.execute(mt2);es.execute(mt3);es.execute(mt4);es.shutdown();}}class MyThread extends Thread{String name;MyThread(String name){this.name = name;}@Overridepublic void run(){System.out.println(name + "正在执行");}}
- Java关键字
- Java关键字
- Java关键字
- Java关键字
- JAVA关键字
- java关键字
- Java关键字
- java 关键字
- Java关键字
- Java关键字
- java关键字
- Java关键字
- JAVA关键字
- JAVA关键字
- Java 关键字
- java关键字
- Java 关键字
- java关键字
- RAC VOTINT OCR
- recovery汉化实现
- Oralce新建数据库、新建远程登录用户全过程
- Android蓝牙开发浅析
- python中让程序休眠一段时间
- java 关键字
- HDU 1254 推箱子 (bfs嵌套)
- 解决从VIM复制出来的代码格式错乱或对齐的问题
- Search Insert Position
- 002MFC实现画直线功能
- 如何屏蔽国内IP访问我们的网站的一些方法
- EC之Constructors,Destructors, and Assignment Operators
- log4j的设置与使用
- oracle中造大数据量的测试数据