![](https://img-blog.csdnimg.cn/20190918140012416.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
JAVA日积月累-初级
文章平均质量分 65
JAVA日积月累-初级
kiduo08
这个作者很懒,什么都没留下…
展开
-
ThreadLocal实现原理与实战运用
ThreadLocal(线程本地)叫做线程变量,属于当前线程,该变量对其他线程而言是隔离的,也就是该变量是当前线程独有的变量。ThreadLocal为变量在每个线程中都创建了一个副本,那么每个线程可以访问自己内部的副本变量。同一个ThreadLocal所包含的对象,在不同的Thread中有不同的副本。因为每个线程Thread内有自己的副本,该副本只能由当前Thread使用。既然每个Thread有自己的实列副本,且其他Thread不可访问,那就不存在多线程间共享的问题。原创 2023-03-02 16:29:28 · 680 阅读 · 0 评论 -
每天一个面试知识点Java(7)为什么wait和notify必须放在synchronized中?
Object是超类,是所有类的父类,默认继承了Oject类(如果没有显式的继承Object,jdk6之前是编译器处理,jdk7之后是虚拟机处理默认继承)。Object类中有notify、wait等基本方法,所以继承了Object的类也拥有了Object的所有方法。 在多线程编程中,wait 方法是让当前线程进入休眠状态,直到另一个线程调用了 notify(notifyAll) 方法之后,才能继续恢复执行。而在 Java 中,wait 和 notify(notifyAll) 有着一套自己的使用格式要原创 2022-06-13 15:56:52 · 394 阅读 · 0 评论 -
Mybatis中#{}与${}的区别是什么?
#{}是占位符,即sql 预编译处理,会将sql中的#{}替换为?号,调用PrepareStatement来赋值, 对应的变量自动加上单引号。${}是拼接符,即sql拼接,会将sql中的${}替换为变量的值,调用Statement来赋值,对应的变量不会加上单引号。#{} 能有效防止sql 注入,提高系统安全性。项目操作-- 变量值定义userName= 'wukong'password = "1 or 1=1"select * from sys_user where user_name .原创 2022-06-02 16:20:16 · 140 阅读 · 0 评论 -
JRebel热部署的使用
JRebel:实现了不需要重启服务器达到热部署项目效果,它会对你当前所编辑过的页面进行编译,大幅度减少了重启服务器所带来的等待时间。注意事项:c盘下的用户名一定不能为中文名称,否则会一直提示路径错误,目前测试全部失败,以后的同学们安装可以试一试,如果成功了就留个言。1安装jrebel插件1.File–》Settings—》plugins----》marketplace----》搜索jrebel,点击install 安装,安装完成会出现Restart ,点击重启idea即可。2.安装成功后会出现如下原创 2022-05-29 18:19:01 · 2126 阅读 · 3 评论 -
每天一个面试知识点Java(7) maven 中clean package install和deploy有什么区别
maven 同学们在开发中 中clean package install 这个大多数人在项目实际开发中会用到,,deploy 可能是leader 或者写框架的同学才用到。比如一个功能写完 大家可能跟我一样用idea 写完代码然后Run项目,但是有时候项目不行,然后就一顿操作 clean、package、install。有没有仔细的想过 为啥我们要这么操作,为啥操作后能代码就正常运行了?很多同学肯定与运维有些交集,你偶尔也能看到他们手动帮你部署测试环境,或者看到自动化部署中的配置mvn clean原创 2022-05-25 23:03:09 · 610 阅读 · 0 评论 -
每天一个面试知识点Java(6)java中堆内存、栈内存、常量池详细讲解,学完就考同事
Java程序是运行在JVM(Java虚拟机)上的,因此Java的内存分配是在JVM中进行的,JVM是内存分配的基础和前提。Java程序的运行会涉及以下的内存区域:寄存器:JVM内部虚拟寄存器,存取速度非常快,程序不可控制。栈:存放基本类型的数据和对象的引用,但对象本身不存放在栈中,而是存放在堆中。堆:存放new出来的对象,注意创建出来的对象只包含各自的成员变量,不包括成员方法。常量池:存放常量,如基本类型的包装类(Integer、Short)和String,注意常量池位于堆中。...原创 2022-05-20 10:55:09 · 556 阅读 · 0 评论 -
每天一个面试知识点Java(5) ==是地址比较还是值比较?Integer中有缓存?
Integer中进行==比较public class Test { static Logger logger = LoggerFactory.getLogger(Test.class); public static void main(String[] args) { int a1 = 127; int a2 = 127; logger.info("int a1与a2的==比较值是:{}",a1==a2); int b1 =原创 2022-05-18 16:02:29 · 275 阅读 · 0 评论 -
每天一个面试知识点Java(3 )Java中重写(Override)与重载(Overload)的区别
利用摸鱼时间、每天积累一个知识点、学精学透、夯实基础、面试不用愁。一、重载(Overload) 方法重载就是让类用统一的方式处理不同类型的数据,不同参数的一种手段。a.创建一个重载类public class Overloading { int computed(int a,int b){ return a+b; } int computed(int a,int b,int c){ return a+b+c; }}b.main方法调原创 2022-05-07 11:28:27 · 218 阅读 · 0 评论 -
每天一个面试知识点Java(2 )Java中“goto“语句使用技巧
目标 继上一章节return、break和continue的区别 并没有直接跳出多层循环、在java中怎么才能跳出多层循环体呢?这一章节就利用“goto”语法跳出循环体语句。 有次和朋友聊天的时候,无意间聊到了 goto 语句,但是在 Java 中, goto 是保留关键字,但是朋友说 Java 中有和 goto 类似效果的语句,我竟然一点都不知道!顿时感觉 Java 白学了!心里万马奔腾!?立马回来查资料+写demo,还有这种操作???!!!哭了哭了。。。认识goto&标签首先b原创 2022-05-05 14:56:34 · 1629 阅读 · 0 评论 -
每天一个面试知识点Java(1) return、break和continue的区别还傻傻分不清
目标return、break和continue的在循环体中的区别demo代码地址 https://gitcode.net/kiduo08/learning-junior.git区别1、for循环-normal /** * @author yuantai * @Version: 1.0 */public class Junior1 { public static void main(String[] args) { String[] arr = {"a","b","原创 2022-05-05 10:30:07 · 635 阅读 · 0 评论