p689-714
格式化语句
gpt说的:
`System.out.println` 方法不支持像 `printf` 一样的格式化字符串。要使用格式化字符串,你可以使用 `System.out.printf` 方法或将格式化后的字符串传递给 `System.out.println`。下面是两种修正的方法:
### 方法一:使用 `System.out.printf`
```java
String userID = "Alice";
System.out.printf("+++++++++欢迎%s的登入\n", userID);
```
### 方法二:使用 `String.format` 和 `System.out.println`
```java
String userID = "Alice";
String message = String.format("+++++++++欢迎%s的登入", userID);
System.out.println(message);
```
两种方法都会输出 `+++++++++欢迎Alice的登入`。选择其中一种方法即可避免报错。
解决不了的报错
java.net.SocketException: Connection reset
写的浑身难受,跳了。快进到710
反射
开闭原则:开:扩展功能,闭:不修改源码
反射机制
1.反射机制允许程序在执行期借助于Reflection API取得任何类的内部信息(比如成员变量,构造器,成员方法等等),并能操作对象的属性及方法。反射在设计模式和框架底层都会用到
2.加载完类之后,在堆中就产生了一个Class类型的对象(一个类只有一个Class对象),这个对象包含了类的完整结构信息。通过这个对象得到类的结构。这个对象就像一面镜子,透过这个镜子看到类的结构,所以,形象的称之为:反射
Java反射机制可以完成
1.在运行时判断任意一个对象所属的类
2在运行时构造任意一个类的对象
3.在运行时得到任意一个类所具有的成员变量和方法
4.在运行时调用任意一个对象的成员变量和方法
5.生成动态代理
反射相关主要的类
1. java.lang.Class:代表一个类,Class对象表示某个类加载后在堆中的对象2.java.lang.reflect.Method:代表类的方法,Method对象表示某个类的方法
3. java.lang.reflect.Field:代表类的成员变量,Filed对象表示某个类的字段(成员变量)
.4. java.lang.reflect.Constructor:代表类的构造方法,Constructor对象表示构造器
这些类在java.lang.reflection
反射的优缺点
1.优点:可以动态的创建和使用对象(也是框架底层核心),使用灵活,没有反射机制,框架技术就失去底层支撑。
2缺点:使用反射基本是解释执行,对执行速度有影响.