第二天

1:math.random()

math.random(11.5)=12

math.random(-11.5)=-11

 

math.random(11.45)=11

math.random(-11.45)=-11

 

math.random(11.52)=12

math.random(-11.52)=-12

 

 

2:能够应用switch判断的类型:

byte,char,int,short以及所对应的封装对象,此外还有enum类型

 

3:面向对象特性

封装,继承,多态

一个类实现了一个接口(或继承一个抽象类),就必须实现该接口(该抽象类)里的所有方法,除非该类是抽象类。

 

4:多线程

进程和线程的联系

每个进程都是一个独立运行的程序,拥有自己的变量,且不同进程之间不能共享变量;

而线程是运行在进程内部的,每个正在运行的进程至少有一个线程,而且不同的线程可以在进程范围内共享数据。

 

声明一个线程的两种方法:

一:继承自Thread类,

 

public class ThreadTest1 extends Thread {


 public void run() {
  System.out.println("threadTest1 invoke");
 }

}

 

二:实现Runnable接口

public class ThreadTest2 implements Runnable {

  public void run() {
  System.out.println("threadTest2 invoke");

 }

}

 

这两种方法在启动的时候方式有所不同:

ThreadTest1 t1 = new ThreadTest1();
  t1.start();
  
  Thread t = new Thread(new ThreadTest2());//第二种ThreadTest2 类就没有start方法。
  t.start();

 

 

线程分为六种状态:新建,可运行,阻塞,等待,定时等待,死亡状态。

 

sleep()和wait()的区别

sleep()方法是Thread类中的方法,wait()是object类中的方法

sleep()是一个静态方法,可以这么使用,如在run方法里写Thread.sleep();

 

实现同步的方式:

给一个方法增加synchrinized就可以使该方法称为同步方法,方法可以是静态的或非静态的,但不能是抽象类里的抽象方法,也不能是接口中的接口方法,

当一个线程进入到一个对象的同步方法以后,这个对象的所有同步方法(还有同步块)就都被锁定了,在此期间,其他任何线程都不能访问这个对象中的任意一个同步方法;在一个对象被某个线程锁定之后,其他线程是可以访问这个对象的非同步方法的。

 

 

 

5:逻辑运算符

逻辑运算符可以操纵byte,short,int,long,char,但不能操纵float,double

逻辑运算符是遵循短路形式的,而按位运算符是不遵循短路形式的。

 

6:移位运算符

<<:左移:低位补0

>>:右移:正数高位补0;负数高位补1

>>>:无符号右移:无论正负,高位补0

 

byte,short,char在做移位之前,都会自动被转换成int类型,然后再做移位运算。

byte,short,char,int在移位以后就都是int型

 

1<<35  = 1<<(35%32) = 1<<3 = 8;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值