一个程序在运行的过程中就产生一个进程,一个进程有可能会使用到一个到多个线程,而Java中经常会使用到多线程,比如debug.每一次调用方法都会使用到多线程.Java中可以用Thread 的子类来创建一个线程,然后子类里面的run方法来执行我们所要编程的代码.也可以直接在匿名子类中创建并override run方法.
synchronized同步锁机制.一个对象只有一把锁,同一时刻只能一个线程持有这把锁.
非静态同步方法申请的锁是类的当前对象的锁,静态同步方法申请的锁是类的Class对象的锁。同步方法执行完后即向系统归还锁//
所有需要同步的线程必须都申请同一个对象的锁,当申请不同的锁或者有的线程没有使用synchronized时,同步锁机制就会失效.//
wait(); notify();必须和synchronized 同时使用.
IP/一个计算机对应一个IP地址,可以在网络连接中找到对应的地址. 域名:localhost//代表本地.每个域名对应一个IP地址.域名相对IP好记.
端口/TCP协议/socket编程/客户端,服务端,使用socket的步骤 1)建立socket连接 2)获取socket输入输出流.3)使用IO流进行交换通信,4)关闭IO流关闭socket连接
UDP连接.要使用 DatagramSocket(端口1)来创建send端. 然后使用DatagramPacket(byte[],byte[].length,IP地址,端口号2) send(packet);
DatagramSocket(端口与send端对应.). 然后使用DatagramPacket(byte[],byte[].length)/.length为数据的真是长度=packet.getLength()// receive(packet);
二进制 逢2进1. 0/1/10/11/100/101/110/111/1000/1001/1010 十进制2的N次方可以表示为2后面有N个0 // 2的2次方为4= 100 2的3次方为8 =1000 ...
字符编码 asc 对应一个byte. 包括字母a97 A 65 常用为UTF-8.GB-2312 GBK等编码.
JVM
加载的类和方法的信息都在方法区. 常量池里面放的是Integer.Byte.Short等基本类型包装类的对象.以及""出现的字符串.
每次new对象的时候就会在堆内存中分配给这个对象一个首地址. 每次使用方法的时候则在栈内存开启部分内存来给他使用.方法中的变量的指向和使用. 当方法结束时,栈内存也会随时关闭.
JVM会使用一个单独的线程不定时的执行垃圾回收,垃圾回收器一般从若干个根对象开始遍历并标记遍历到的对象,那些最终也没被标记的对象就会被垃圾回收器回收
开发人员也可以使用System.gc();方法“催促”垃圾回收器进行回收,但不能保证立即回收.
递归方法 :两个必要的方法 1)如何使用方法来调用自己. 2)如何返回.--什么时候不能调用自己避免一直循环下去.
类路径:Class.class.getClassLoader()//类加载器..getResource(String name); url.getFile();直接getResource则/开头 StringName.