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");
        ...
    }
    ...
}
posted @   Red_Revolution  阅读(22)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
点击右上角即可分享
微信分享提示
主题色彩