![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java基础
程序员赖子
这个作者很懒,什么都没留下…
展开
-
SPI总结
在很多框架中, JDK 提供的 SPI (Service Provider Interface) 扩展方式都是不可或缺的技术比如spring,dubbo,servicecomb等框架都是用了这个技术。原创 2021-04-26 21:09:09 · 382 阅读 · 0 评论 -
三种获取路径的方式
public class Test {public static void main(String[] args) throws IOException {Properties properties = new Properties();// FileReader reader = new FileReader("./test.properties");// FileReader reader = new FileReader(“test.properties”);FileReader原创 2021-04-03 11:45:01 · 183 阅读 · 0 评论 -
并发编程——线程生命周期
NEWRUNNABLEBLOCKEDWAITINGTIMED WAITINGTERMINATE线程生命周期图原创 2021-03-27 11:06:06 · 58 阅读 · 0 评论 -
为什么使用线程池而不使用Timer
使用TimerTask如果执行任务过程中出现异常,可能导致整个服务关闭public class TestTimerTask { public static void main(String[] args) { Timer timer = new Timer(); timer.schedule(new TimerTask() { @Override public void run() { .原创 2021-03-26 22:12:54 · 102 阅读 · 0 评论 -
位运算真的更快吗
位运算测试package com.ljb.springboot.bitcal;public class Test { public static void main(String[] args) { long start = System.currentTimeMillis() * 1000000L + System.nanoTime() % 1000000L; int test1 = 2 << 16; int test2 = 2原创 2021-03-17 11:58:17 · 402 阅读 · 1 评论 -
ehcache
ehcache转载 2021-03-12 01:37:31 · 65 阅读 · 0 评论 -
java基础之反射
使用反射获取private static 的值public class ReflectTest { @SuppressWarnings("unchecked") public static void main(String[] args) throws Exception { Class clazz = Book.class; Field field = clazz.g...原创 2020-03-03 22:40:34 · 137 阅读 · 0 评论 -
一个简单的回调实现
@FunctionalInterfacepublic interface CallBack { public void report(int num);}public class Boss implements CallBack { public void order(Employee e) { System.out.println("boss 下达任务,等待员工去完成。。。"...原创 2020-03-03 15:17:42 · 232 阅读 · 0 评论 -
深入理解Java虚拟机
HotSpot VM是JAVA使用的虚拟机,它名称中的HotSpot值得就是它的热点代码探测技术。热点代码探测能力可以通过执行计数器找出最具有编译价值的代码,然后通知JIT编译器以方法为单位进行编译。如果一个方法被频繁调用,或方法中有效循环次数很多,将会分别出发标准编译和OSR(栈上替换)编译动作。通过编译器与解释器恰当地协同工作,可以在最优化的程序响应实践与最佳执行性能中取得平衡。Open ...原创 2020-03-01 20:52:34 · 96 阅读 · 0 评论 -
设计模式
建造者模式当需要实例化一个复杂的类,以得到不同结构和不同内部状态对象时,我们可以使用不同的类对他们的实例化操作逻辑分别进行凤凰组昂,这些类就被称为建造者。package com.ljb;import java.util.Map;import java.util.Map.Entry;import java.util.TreeMap;public class Settings {...原创 2020-01-17 10:28:53 · 338 阅读 · 0 评论 -
java基础
守护线程:如果虚拟机中只有Deamon线程运行,则虚拟机退出public class Test { public static void main(String[] args) { Thread t = new Thread(new Runnable(){ public void run() { System.out.println("Daemon thread"); ...原创 2019-11-13 11:18:08 · 155 阅读 · 0 评论 -
tomcat基础操作
配置环境变量1.1配置CATALINA_HOME,指定tomcat的目录1.2配置path,添加%CATALINA_HOME%\bin,%CATALINA_HOME%\lib测试2.2 执行startup命令在Eclipse中添加tomcatEclipse->Preference-> Server->Runtime Environment...原创 2019-05-04 13:31:30 · 428 阅读 · 0 评论 -
linux安装jdk+docker+开机启动
Linux中安装JDK添加jdk8.0_161,本人放在/data/jdk/dk8.0_161目录下 在/etc/profile文件中添加JAVA_HOME=/data/jdk/jdk1.8.0_161CLASSPATH=$JAVA_HOME/lib/PATH=$PATH:$JAVA_HOME/binexport PATH JAVA_HOME CLASSPATH执行sour...原创 2019-05-15 15:44:03 · 843 阅读 · 0 评论 -
java内存管理与继承
对象内存管理:1.编译好的java程序(.class)需要运行在JVM中。JVM内存分为“堆”,“栈”,“方法区”。2.堆中存放所有new关键字创建的对象(包括成员变量)3.成员变量的生命周期:创建对象时存放在堆中,对象被回收时一并消失。4.内存泄漏是指不再实用的内存没有被及时回收。5.栈:用于存储正在调用中方法的局部变量6.一个栈侦对应的是正在调用中的方法,存放原创 2017-08-13 23:41:45 · 323 阅读 · 0 评论