摘要: 知识前景:在java虚拟机的运行时数据中有一块地方叫虚拟机栈,每个线程独有。栈中存放一个一个栈针,每个栈针对应程序中的一个方法,若有main方法则位于最底层。栈针中有一个局部变量表:记录局部变量;和一个操作数栈:便于执行指令操作。 i++和++i的操作不同于其他的赋值和加减乘除等操作,它是直接在局部 阅读全文
posted @ 2023-09-27 19:39 万里阳光号船长 阅读(8) 评论(0) 推荐(0) 编辑
摘要: 概念 代理的目标是在不修改现有代码的前提下对方法进行增强,实现在执行方法之前或之后进行某些操作,如日志记录、数据库事务操作等。 静态代理。由我们自己去定义一个代理类,去包含要被代理的类(以下称为目标类),并暴露和目标类一样的方法供外界调用,然后在这个方法里面调用目标类的具体方法,此时就可以在调用目标 阅读全文
posted @ 2023-09-27 19:38 万里阳光号船长 阅读(16) 评论(0) 推荐(0) 编辑
摘要: BIO模型 BIO即blocking IO,顾名思义是一种阻塞模型。当没有客户端连接时,服务端会一直阻塞,当有客户端新建连接时,服务端会新开一个线程去响应(不用多线程的话服务端同一时刻最多只能接收一个连接)。但不断的新开线程对服务器的压力是巨大的,为了缓解压力可以采用线程池技术实现线程复用,但这种做 阅读全文
posted @ 2023-09-27 19:37 万里阳光号船长 阅读(18) 评论(0) 推荐(0) 编辑
摘要: 下面是ReentrantLock非公平锁加锁流程: final void lock() { //调用CAS尝试获取锁 if (compareAndSetState(0, 1)) //尝试成功则修改当前拥有锁的线程是自己 setExclusiveOwnerThread(Thread.currentTh 阅读全文
posted @ 2023-09-27 19:36 万里阳光号船长 阅读(20) 评论(0) 推荐(0) 编辑
摘要: 终端直接输入命令 java -cp 参数1 org.jetbrains.java.decompiler.main.decompiler.ConsoleDecompiler -dgs=true 参数2 参数3 参数说明: 参数1。IDEA安装目录下的反编译插件“java-decompiler.jar” 阅读全文
posted @ 2023-09-27 19:35 万里阳光号船长 阅读(1489) 评论(0) 推荐(1) 编辑
摘要: 先展示结果 具体步骤 选择导航栏的File -> Settings -> Editor -> Live Templates。 点击右边的加号,先创建一个Template Group(名字随意),选中创建的分组,再点击加号创建Live Template。 在下方的Abbreviation中设置想使用的 阅读全文
posted @ 2023-09-27 19:34 万里阳光号船长 阅读(163) 评论(0) 推荐(0) 编辑
摘要: 题目描述 小明很喜欢打字,今天小红给了小明一个字符串。这个字符串只包含大写和小写字母。 我们知道,按下CapsLock键,可以切换大小写模式。我们在小写模式时候,同时按下shift+字母键,就能写出大写字母。在大写模式的时候,按下shift+字母键,就能写出小写字母。现在问题来了,给你一个字符串,问 阅读全文
posted @ 2023-09-27 19:33 万里阳光号船长 阅读(108) 评论(0) 推荐(0) 编辑
摘要: Visual Studio打包windows服务并实现自动注册与开启,详细图文。 阅读全文
posted @ 2023-09-27 19:27 万里阳光号船长 阅读(407) 评论(0) 推荐(0) 编辑