JAVA基础
赋值#
符号表
type | value | |
---|---|---|
t | int | 10 |
s | String | 0x1618 |
- 变量和字面量之间的赋值
s = 10
,基本数据类型,赋值s = "tag"
,引用数据类型,赋地址
- 变量和变量之间的赋值
s = t
- 基本数据类型变量,赋
t
的具体值 - 引用数据类型变量,赋
t
指向的引用的地址值
- 基本数据类型变量,赋
包装类型#
- 包装类型(String)之间的比较都用equals,注意NPE问题
- 基础数据类型与封装类进行 ==、+、-、*、/ 运算时,会将封装类进行拆箱,对基础数据类型进行运算
- 浮点类型数值比较用 BigDecimal 的 compareTo
JAVA值传递#
https://zhuanlan.zhihu.com/p/89794950
https://blog.csdn.net/weixin_44640989/article/details/120590881
1、基本数据类型:形参b是fun栈帧的局部变量,初始值为实参a的拷贝10,改变形参值无法影响实参
void fun(int b) {
b = 11;
}
void main() {
int a = 10;
fun(a);
System.out.println(a); // 10
}
2、引用数据类型:
- 形参b是fun栈帧的局部变量,初始值为实参a的引用地址值0x1234拷贝,改变形参值(指向对象地址)无法影响实参
- 形参p是fun栈帧的局部变量,形参p和实参per始终保持相同的值(指向同一个对象地址),形参的操作会影响实参指向对象的内容
void fun(String b, Person p) {
b = 'b'; // 0x5678
p.setName('red');
}
void main() {
String a = 'a'; // 0x1234
Person per = new Person('green');
fun(a, per);
System.out.println(a); // 'a'
System.out.println(per.getName()); // 'red'
}
try-with-resource#
任何实现了 java.lang.AutoCloseable的对象, 包括所有实现了 java.io.Closeable 的对象, 都可以用作一个资源
public String readFirstLineFromFile() throws IOException {
try (BufferedReader br = new BufferedReader(new FileReader("a"))) {
return br.readLine();
}
}
反射#
修改某些字段
Field field = ReflectionUtils.findField(A.class, "iniMap");
ReflectionUtils.makeAccessible(field);
@SuppressWarnings("unchecked")
Map<String, String> initMap = (Map)field.get(A.class);
Assert.assertNotNull(initMap);
initMap.put(switchName, state);
抽象父类注入Bean#
Method1
public abstract class AbstractXXXServiceImpl implements XXXService
{
@Inject
protected XXXService xxxService;
...
}
@Service
public class XXXServiceImpl extends AbstractMatchServiceImpl implements ApplicationListener<ContextRefreshedEvent> {
@Override
public void onApplicationEvent(ContextRefreshedEvent event) {
this.xxxService = xxxIoc.getBean("xxxService");
Assert.notNull(xxxService, "xxxService is null");
}
}
本质直接通过IOC容器注入或者getBean
public abstract class AbstractXXXServiceImpl implements XXXService
{
protect static String proxyExecute(XXXHttpRequest request) {
XXXAppService xxxAppService = SpringContextHolder.getBean("xxxAppService");
...
}
...
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!