线程池
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
public class test {
public static void main(String[] args) {
//创建线程池。 并且开辟了三个线程留着备用
ExecutorService ex = Executors.newFixedThreadPool(3);
int i=3;
while(i-->0){
ex.submit(new My1());
ex.submit(new My1());
ex.submit(new My1());
ex.submit(new My2());
}
//结束线程池的内容。
ex.shutdown();
}
}
class My1 implements Runnable{
@Override
public void run() {
// TODO Auto-generated method stub
//打印当前类使用线程的具体信息。
System.out.println(Thread.currentThread().getName()+"====");
}
}
class My2 implements Runnable{
@Override
public void run() {
// TODO Auto-generated method stub
System.out.println(Thread.currentThread().getName()+"~~~");
}
}
java属于哪一种语言?
编译解释型
先编译成二进制,然后再运行。编译型
一边编译成二进制,一边运行。解释型
GC:垃圾回收机制。
我们作为程序员不能精准控制垃圾回收机制。
什么是垃圾?作为一个对象,如果没有任何变量引用,进过一段时间,系统就会将它看成是垃圾。
基本数据类型:
数值型:byte short int long
八进制:012;十六进行:0x12;
默认是int型。
在c语言中分有符号和无符号:
在java中所有数值都是有符号的。
字符型:char
存储单个字符 ‘A’
放数字 char a=67;它实际上对应的是Unicode编码表中对应的字符。
存放编码:char b=‘\u0067’十六进制
转义字符:char c='\n'
char字符在java中和c语言中的区别:
char在c中一个字节。在java中是两个字节。
在java中可以存放中文。
理由:放得下。在Unicode表中有对应的编码。
布尔型:
boolean :true false
浮点型:
double float
默认是double
十进制 3.12
科学计数法
3.12E3;
引用数据类型:(不属于基本数据类型)
数组,接口,类。
在JAVA中所有的传递都是值传递,没有引用传递,如果是引用类型的传递,也只是复制它的地址传递下去,也是值传递。
变量:
成员变量 位置:在类中,方法外。都有默认值。
静态变量 (用static修饰的成员变量)
调用方法:通过类名可以调用,还可以创建对象,通过对象去调用。
【生命周期】:随着类的加载而加载。
【存储位置】:常量池中。
非静态变量(没有用static修饰的成员变量)
调用方式:只能通过对象去调用。
【生命周期】:随着对象的创建而被加载。
【存储位置】:堆中。
局部变量 位置:在类中,方法中。
(没有默认值)
生命周期:只在定义它的方法内有效。
存储位置:栈。