String不可变的好处

String类为什么要设成immutable(不可变的)类型? 不可变对象,顾名思义就是创建后不可以改变的对象,典型的例子就是Java中的String类。 String s = "ABC";   s.toLowerCase(); 如上s.toLowerCase()并没有改变“ABC“的值,而是创建了一个新的String类“abc”,然后将新的实例的指向变量s。 相对于可变对象,不可变对象有很多优势: 1).不可变对象可以提高String Pool的...

read more..

反射、注解

1反射 1.1 什么是反射 程序运行期间,使用另外一种技术来创建对象实例,调用方法,后期我们经常使用,但很少去写【框架】 1.2 字节码对象 获取字节码对象 // 对象实例.getClass()// 类.class// Class.forName("全限定类名") 代码片段 // Class.forName("全限定类名");@Testpublic void test03() throws Exception {    Class c1 = Class.forName("com.itheima.b_reflec...

read more..

基于客户端和服务端的文件上传

一、客户端 public class Client {     public static void main(String[] args) throws IOException {         // 创建客户端对象         Socket socket = new Socket("localhost", 8888);  ...

read more..

网络编程

UDP和TCP协议特点        TCP:通信可靠(相当于是打电话)        UDP:通信不可靠(相当于是广播)   TCP协议下两个常用类名称        服务器:java.net.ServerSocket   // 只有端口号        客户端:java.net.Socket      &n...

read more..

IO(缓冲流、转换流、序列化、打印流)

使用字节缓冲流读取数据到程序        BufferedInputStream in = new BufferedInputStream(new FileInputStream("abc.txt"));        使用起来和一般的字节输入流基本没有差别。   使用字节缓冲流写出数据到文件        BufferedOutputStream out = new BufferedOutputStream(new FileOutputSt...

read more..