媒体
1,java环境变量:
PATH:
.;%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;
CLASSPATH:
.;%JAVA_HOME%\jre\lib\rt.jar;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;
JAVA_HOME:
jdk安装路径
java运行原理:
Java应用程序 => Java API => Java虚拟机 => 操作系统 => 底层硬件
Java源文件 编译成class文件 运行
2,sleep方法和wait方法区别:
sleep方法是线程运行状态控制的问题,其来自于Thread类,没有释放锁,可以在任何地方使用,但必须捕获异常。
wait方法:是线程与线程之间的通讯问题,其来自于Object类,释放锁,只能在同步控制方式同步控制代码块中使用,不需要抛出异常。
3,StringBuffer与StringBuilder区别:
StringBuffer:是可变类,任何对他所指代的字符串的改变都不会产生新的对象。线程安全,适合多线程使用,效率低。
StringBuilder:线程不安全,适合单线程使用,效率高。
4,静态内部类,不能被访问外部类实例成员,只能访问内部类的静态成员。
局部内部类,只能访问方法中final修饰的局部变量。
匿名内部类,适合只使用一次的类,不能是抽象类,不能定义构造器,必须继承一个父类或者实现一个接口,但是最多只能一个父类或实现接口。
5,当前时间:
SimpleDate Fomat s = new SimpleDate Fomat("yyyy-m-d HH:mm:ss");
System.out.println(s.format(new Date()));
6,懒汉模式:
class Singleton{
privorte static singleto a = null;
publilc static Singleto getA(){
if(a == null){
a = new Singleton();
}
return a;
}
private Singleton(){}
}
7,遍历hashmap的方式:
第一种:
Map map = new HashMap();
Iterator iter = map.entrySet().iterator();
while(iter.hasNext()){
map.Entry entry = (map.Entry)iter.next();
Object key = entry.get key();
Object val = entry.getValue();
}
第二种:
Map map = new HashMap();
Iterator iter = map.entrySet().iterator();
while(iter.hasNext()){
map.Entry entry = (map.Entry)iter.next();
Object key = iter.next();
Object val = map.get(key);
}
8,java中基本数据类型与其包装类:
基本数据类型 包装类
byte Byte
short Short
int Integer
long Long
char Character
float Float
double Double
boolean Boolean
9,将字符型转换成整形:
String str = "17";
int i = Integer.parseInt(str);
10,线程的生命周期:
开始==》就绪==》阻塞==》运行==》死亡
《===返回===
10,简单的工厂模式:
interface Gongchang{
void send Msg();
}
class A{
public static Gongchang getInstance(String type){
Gongchang g = null;
if("htc".equalsgnose.Case(type)){
ff = new HTC();
}else if("iphone".equalsgnose.Case(type)){
ff = new Iphone();
}
return p;
}
}
11,查看某文挡下的内容:
File f = new File(文档路径);
FileReader r = new FileReader(f);
char [] c = new char(1024);
r.read();
下面是我自己做的模拟服务端和客户端:
import java.io.IOException;
import java.io.InputStream;import java.net.*;import java.util.Scanner;public class Domefuwu { //服务端
static Scanner sc = new Scanner(System.in); static Socket socket = null; static ServerSocket sever = null; public static void main(String[] args) { System.out.println("已经建立服务器"); try { sever = new ServerSocket(7878); //新建一个端口,名为sever:7878 while(true){ socket = sever.accept(); //监视端口sever System.out.println("已经和"+socket.getLocalAddress()+"建立聊天通道\n等待对方发言"); duqu(); //调用读取方法 } } catch (Exception e) { e.printStackTrace(); } }private static void duqu() throws IOException { //定义读取方法
InputStream input = socket.getInputStream(); byte[] bytes = new byte[1024]; int len = 0; StringBuffer buffer = new StringBuffer(); while((len = input.read(bytes)) != -1){ buffer.append(new String(bytes,0,len)); } input.close(); System.out.println("对方发来消息"+buffer.toString()); //将读取到的消息输出 }}
package duankou;
import java.io.*;import java.net.*;import java.util.*;public class Domekehu { //客户端
static Scanner sc = new Scanner(System.in); static Socket socket = null; public static void main(String[] args) throws Exception { System.out.println("客户端正在尝试连接"); try { socket = new Socket("127.0.0.1",7878); //链接端口:7878 try { fayan(); //调用发言方法 } catch (Exception e) { e.printStackTrace(); } } catch (Exception e) { e.printStackTrace(); } } private static void fayan() throws Exception { //定义发言方法 System.out.println("链接成功,请发言"); String nei = sc.next(); //输入并传输给服务端 OutputStream output = socket.getOutputStream(); output.write(nei.getBytes()); output.close(); }}