Java base
文章平均质量分 81
骑鱼的猫咪
这个作者很懒,什么都没留下…
展开
-
使用ThreadLocal保存用户登录信息
遇到的问题: 在实际开发中,我们的登录是接的代理,每次取登录信息都需要从HttpServletRequest中取,不是很灵活,假如我们想在service,dao层使用,我们就需要从controller层一层一层传递,非常的麻烦 解决办法: ThreadLocal可以把用户信息保存在线程中,用户发来的每一次请求启动的线程到保存了用户信息,当请求结束,我们会把保存的用户信息清除掉,这样就方便我们在开发中获取用户登录信息 实现思路: 我们需要创建一个ThreadLocal类,创建一个Thread原创 2021-01-28 14:36:50 · 2894 阅读 · 0 评论 -
单例模式总结
单例模式,最常见的有两种单例模式,饿汉式和懒汉式,如下:/** * 饿汉式 */public class SingletonHungry { //单例对象 private SingletonHungry instance = new SingletonHungry(); //私有构造方法 private SingletonHungry(){} ...原创 2019-09-01 16:02:06 · 81 阅读 · 0 评论 -
Java中字符串与整型,字符串与字符数组的相互转换?
String转换成int String s ="10000"; int n = Integer.valueOf(s); String s ="10000"; int n = Integer.parseInt(s); 都可以装换成可加减的类型,如果定义是Integer n也是可以的,定义成int n比较用“==”,Integer用equals方法,这样测试下来没有任何区别 i...原创 2019-03-23 21:10:25 · 314 阅读 · 0 评论 -
Java对象的内存布局
Java对象的内存布局包括:对象头,实例数据,对齐填充1.对象头 对象运行时的数据信息,包括哈希码,分代年龄,锁状态标志等信息 对象指向元信息的指针,Jvm通过这个指针来确定这个对象是那个类的实例 2.实例数据:对象存储真正的有效信息 3.对齐填充:Jvm要求对象的大小必须是8的倍数,不是的话,需要补位对齐...原创 2019-02-13 16:16:44 · 82 阅读 · 0 评论 -
Java重载和重写的区别?
重载是一个类有多个方法,每个方法的名相同,参数表不同,可以通过传入不同的参数表,调用不同的方法,体现了类的多态性 重写是子类继承父类,子类可以使用所有的父类方法,如果想要修改某个父类方法,可以直接在子类中重新定义这个方法,子类调用时,就会调用子类所定义的方法,这就称为重写 重载是由静态类型确定的,属于静态分派,加载的时候即确定;重写是由动态类型确定的,运行时被确定,属于动态分派,动...原创 2018-12-24 11:13:46 · 97 阅读 · 0 评论 -
Java对象创建的过程?
Java创建对象的过程?判断是否被加载到内存 Jvm遇到一条new指令时,会检查这个指令的参数是否能在常量池中定位到一个类的符号引用,检查其是否被加载,解析和初始化,如果没有,把类加载到内存 为对象分配内存空间 分配内存有两种方式,即碰撞指针和空闲列表,如果堆内存是规整的使用碰撞指针,如果不规整使用空闲列表,堆内存的规整取决于Java垃圾回收机制是否有压缩整理的功能...原创 2018-12-24 10:28:02 · 91 阅读 · 0 评论 -
Java中抽象类和接口的区别?
抽象类:抽象类必须在类前加上abstract表示这是一个抽象类,抽象类的抽象方法不需要实现,他只是一种声明,所以也就无法创建抽象类的对象。一个类继承抽象类必须实现抽象类中的抽象方法,如果不实现这个抽象方法,那么这个类就必须是抽象的。接口:接口是Java中的interface,接口中变量都会被隐式指定为public static final变量,方法会被指定为public abstrac...原创 2018-12-11 22:14:58 · 117 阅读 · 0 评论 -
catch中有return语句,finally中的语句会执行吗?
public class Test1 { public static void main(String[] args) { Demo d =new Demo(); System.out.println(d.method()); }}class Demo{ public int method() { int x=10; try { x=20; System....原创 2018-12-17 11:53:32 · 1576 阅读 · 0 评论 -
Java 集合总结
Collection单列集合 List列表(存取有序,有索引,可以重复,允许多个空元素) ArrayList:底层数组实现的,线程不安全,查找和修改快,增加和删除慢 LinkedList:底层链表实现的,线程不安全,增加和删除快,查找和修改慢 Vector:底层是数组实现的,线程安全的,增删改查都慢 注:如果查找修改多,用ArrayList,如果增加删除多,用LinkedL...原创 2018-12-16 19:35:02 · 119 阅读 · 0 评论 -
简述Jvm的内存布局?
Jvm中的内存分为程序计数器,虚拟机栈,本地方法栈,堆,方法区。1.程序计数器,是内存中较小的一块区域,是当前执行线程在执行的字节码的行号标,每个线程各有有一个程序计数器,线程和线程之间,相互独立,互不干扰,这个区域不会报出OutofMemoryError的错误。2.虚拟机栈,是线程所私有的,生命周和线程相同;虚拟机栈描述的是Java方法执行的内存模型,每个方法在执行时都会创建一个栈帧用于...原创 2018-12-13 21:53:15 · 216 阅读 · 1 评论