Java 什么时候类会被加载?
Java 什么时候类会被加载?题目Java 什么时候类会被加载?
推荐解析1)创建类的实例,也就是 new 一个对象
public class Test { public static void main(String[] args) { MyClass obj = new MyClass(); // 通过new关键字实例化对象,会触发类加载 System.out.println(MyClass.staticField); // 通过getstatic指令读取静态字段,会触发类加载 MyClass.staticMethod(); // 通过invokestatic指令调用静态方法,会触发类加载 }}
2)访问某个类或接口的静态变量,或者对该静态变量赋值
public class Test { public static void main(String[] args) { // 访问静态变量 System.out.println(MyClass.stat ...
什么是 JVM 双亲委派机制?
什么是 JVM 双亲委派机制?题目什么是 JVM 双亲委派机制?
推荐解析通俗的说,双亲委派模型,就是加载类的时候,先请求其父类加载器去加载,如果父类加载器无法加载类,再尝试自己去加载类。如果都没加载到,就抛出异常。
双亲委派机制加载过程:
双亲委派机制思维导图:
使用双亲委派机制的好处:
1)使得 Java 类随着它的类加载器一起具有一种带有优先级的层次关系,每个层级得到了统一。
2)通过这种层级关可以避免类的重复加载,当父亲已经加载了该类时,就没有必要子 ClassLoader 再加载一次,避免了多份同样字节码的加载。
3)安全,避免核心类被修改 Java 核心 API 中定义类型不会被随意替换,假设通过网络传递一个名为 Java.lang.Long 的类,通过双亲委托模式传递到启动类加载器,而启动类加载器在核心 Java API 发现这个名字的类,发现该类已被加载,并不会重新加载网络传递的过来的 Java.lang.Long,而直接返回已加载过的 Long.class,这样便可以防止核心 API 库被随意篡改。
总结:
1)层级得到统一
2)避免相同字节码被重复加载
3)防止 ...
MyBatis学习总结(1)
1.1MyBatis的增删改查1.添加<!--int insertUser();--><insert id="insertUser">insert into t_user values(null,'admin','123456',23,'男')</insert>
2.删除<!--int deleteUser();--><delete id="deleteUser">delete from t_user where id = 7</delete>
3.修改<!--int updateUser();--><update id="updateUser">update t_user set username='ybc',password='123' where id = 6</update>
4.查询一个实体类<!-- ...
Java读取MySQL的DateTime类型
Java读取mysql的datetime类型我在项目中使用LocalDateTime类作为与MySQL中DateTime交互的类型,发现在控制台显示时间内容时,不是我想要的yyyy-MM-dd HH:mm:ss,而是2022-12-07T14:39:01,会带一个T,不符合需求。
解决方法:将Java的LocalDateTime类转化为String类
FiledFill是我设置的一个自定义元数据对象处理器用来自动填充和更新时间的。
下面是MyMetaObjectHandler类(自动填充和更新工具 MyBatisPlus)
import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;import lombok.extern.slf4j.Slf4j;import org.apache.ibatis.reflection.MetaObject;import org.springframework.stereotype.Component;import java.time.LocalDateTime;import java ...
程序员小白条的 2023 年度总结
程序员小白条的 2023 年度总结这里是程序员小白条的 2023 年度总结:
1)学校经历:大二下把软考考了,最后一次纸质考的软考,然后上午题 50 ,下午题 58 过了,毕竟我把题库都刷完了,在我看来选择题要比大题难,大题目像学习 Java、有算法基础的同学非常有利,只要跟着看几套视频,基本就没问题了,主要是选择题,408 都涉及,还有法律,专业英语等方面的知识,涉及的广度比较广,有时候不太好复习,我是只刷了题库,2000 题差不多,那时候还没学 Python3,但考试有三题 Python3 的题目,因此对学过 Java 和 Python 的同学比较友好,软考这东西,你说它没用也没用,但总比你吹牛,然后简历上什么获奖经历都没有要好,像很多人不屑考四六级,软考,参加蓝桥杯之类的竞赛,说什么含金量太低,最后简历上写什么驾驶证???我只能扣 666,还是不要眼高手低为好,大三上报了一波计算机三级的数据库技术,顺便看了下大数据,计算机三级对于计算机专业的来说=小学题目,不建议考这个,我是为了学校的素拓分,不拿白不拿,对混奖学金有加成。
2)创作经历:从开源我的项目到 Gitee,维 ...
VirtualBox 和 Vagrant 快速安装 Centos7 报错
VirtualBox 和 Vagrant 快速安装 Centos7 报错今天尝试用 VirtualBox 和 Vagrant 快速安装 Centos7,BUG 多多!
1)下载 6.1.26 版本 VirtualBox,Windows11 不兼容???什么鬼?
解决方法:换 6.1.44 版本了,好像是 6.1.28 以上修复了 Windows11 不能安装 Oracle 的 VirtualBox 的 BUG,7.0.0版本以上貌似修复了更多 BUG,我这边暂时用的 6.1.44版本。
2)使用 Vagrant init centos/7,然后 Vagrant up 疯狂报错。
2.1)第一个错误,由于国内连不上国外服务器,拉取不了,我直接到官网,在线下了个 .box 文件,然后利用 Vagrant box add 名称 文件路径即可完成添加。千万别放中文路径!!!否则 GG !
2.2)第二个错误
incompatible character encodings: gbk and utf-8 (encoding::compatibilityerror)
???又是问号,搜 ...