![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
文章平均质量分 77
iris丶
这个作者很懒,什么都没留下…
展开
-
sqlsession
类似于JDBC的Connection,底层封装了JDBC连接,可以使用SQLSession实例来执行被映射的sql语句,每个线程都应该有自己的SqlSession实例,不能共享,SQLSession也是线程不安全的,使用过后应该使用finally块来确保关闭他package com.cn.testIUserService;import java.io.IOException;import java.io.InputStream;import org.apache.ibatis.io.Resourc转载 2021-08-08 22:03:04 · 216 阅读 · 0 评论 -
ThreadLocal的结构、使用以及内存泄露问题
关于ThreadLocal的认知一直停留在了解阶段,有很多细节和具体结构一直不是特别清楚,网上的博客写的过于公式话也描述的不是很清晰,所以查看源码来学习一下首先先介绍一些将会出现的一些参数ThreadLocal : 其存在意义并不是作为存储数据的数据结构,而是作为一个工具类和索引key值来查询数据使用ThreadLocalMap : 真正存储数据的数据结构,采用map结构,定义是ThreadLocal的一个内部类,每个线程都有一个独立的ThreadLocalMap对象Entry : Thre原创 2021-08-07 18:09:31 · 278 阅读 · 1 评论 -
java线程池
java线程池线程池很久以前学习的知识了复习一下顺便做个总结首先为什么需要有线程池这种东西我们要知道java线程的创建和销毁是操作系统级别的操作,所以对于性能的消耗很大,如果频繁的创建销毁线程对于性能资源是一种很大的浪费,为了避免这种浪费,我们运用池化思想,使用线程池实现线程的复用来来避免线程的频繁创建和销毁。使用线程池还能提高任务的响应速度,节约了创建线程的时间并且,使用线程池让我们可以更好的管理线程,做出相应的优化和限制,避免一些由于无限制创建线程造成的系统问题线程池的工作流程图解很清晰原创 2021-08-05 17:32:42 · 84 阅读 · 0 评论 -
java的值传递
想必大家都听说过一句话,“java只有值传递没有引用传递”,初学java 的时候对这句话有很多不解,就像下面这样public class Person { private String name; private int age; public Person() { } public Person(String name, int age) { this.name = name; this.age = age; }原创 2021-08-04 18:13:56 · 87 阅读 · 0 评论 -
关于JVM堆的一些典型配置
堆的典型配置堆设置-Xms:初始堆大小,也就是当你的虚拟机启动后, 就会分配这么大的堆内存给你-Xmx:最大堆大小-XX:NewSize=n:设置年轻代大小**-XX:NewRatio=n:**设置年轻代和年老代的比值。如:为3,表示年轻代与年老代比值为1:3,年轻代占整个年轻代年老代和的1/4-XX:SurvivorRatio=n:年轻代中Eden区与两个Survivor区的比值。注意Survivor区有两个。如:3,表示Eden:Survivor=3:2,一个Survivor区占整个年轻代原创 2021-07-25 11:24:22 · 156 阅读 · 0 评论 -
128陷阱
在刷题时,碰到了题目中使用Integer类型时使用“==”的方法判断导致题解出错的问题,在查阅了评论和题解之后才意识到是掉进了128陷阱当中 (= =||) ,借此机会打算了解并总结一下Integer出现此问题的原因...原创 2021-03-17 11:54:07 · 163 阅读 · 0 评论 -
JVM自动内存管理知识总结
java内存区域与内存溢出异常运行时数据区域JVM中将其占用的内存区域分为方法区、堆、虚拟机栈、本地方法栈、程序计数器其中方法区、堆为线程共享的,虚拟机栈、本地方法栈及程序计数器为线程私有的程序计数器是一块较小的内存空间,可看作是当前线程所执行的字节码的行号指示器,在JVM中字节码解释器工作时就是通过改变这个计数器的值来选取下一条需要执行的字节码指令。为了线程切换后能恢复到正确的执行位置,每条线程都需要一个独立的程序计数器,所以称程序计数器为线程私有的内存如果线程正在执行的是一个java方法,原创 2021-03-12 00:51:31 · 87 阅读 · 0 评论 -
有关集群和负载均衡的一些总结
几台服务器做一样的事情叫集群,要负载均衡用nginx进行负载分发负载均衡有什么功能:从哪台服务器登录,之后就会一直访问那台服务器,所有请求先访问ngnix服务器,再由ngnix服务器分发到各个服务器,并且ngnix也有配置https证书的功能DNS也有负载均衡的功能,一个域名分发给不同ip先dns分发给ngnix,再由ngnix分发给服务器前后端分离的好处,减轻后端负载压力,不用每次访问都要下载前端页面(不分离时,html页面为java代码生成故每次都要下载完整的html代码,图片、css、js文件原创 2021-03-12 00:41:57 · 270 阅读 · 0 评论 -
Spring中IOC
控制反转(Inversion of Control,缩写为IoC),是面向对象变成中的一种设计原则,可以用来减低计算机代码之间的耦合度。其中最常见的方式是依赖注入(Dependency Injection,简称DI),还有一种方式叫“依赖查找”(Dependency Lookup)。通过控制反转,对象在被创建的时候,由一个调控系统内所有对象的外界实体将其所依赖的对象的引用传递给它。也可以说,依赖被注入到对象中。(百度百科)这里我们需要注意,IOC != DI,IOC是一个原则,DI只是实现IOC的一种手段原创 2021-03-12 00:23:32 · 149 阅读 · 1 评论 -
Spring-AOP
什么是AOP?AOP(Aspect Oriented Programming)译为面向切面编程,是通过预编译方式和运行期间动态代理实现程序功能的统一维护的一种技术。AOP是OOP的延续,是软件开发中的一个热点,也是Spring框架中的一个重要内容,是函数式编程的一种衍生范型。利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。AOP能够将那些与业务无关,却为业务模块所共同调用的逻辑或责任(例如事务处理、日志管理、权限控制等)封装起原创 2021-03-10 20:50:15 · 266 阅读 · 0 评论 -
反射和动态代理
膜拜大神,讲得很通俗易懂原文链接:https://blog.csdn.net/huanglei305/article/details/101012177反射反射机制是 Java 语言提供的一种基础功能,赋予程序在运行时自省(introspect)的能力。简单来说就是通过反射,可以在运行期间获取、检测和调用对象的属性和方法。 反射的使用场景 1.编程工具 IDEA 或 Eclipse 等,在写代码时会有代码(属性或方法名)提示,就是因为使用了反射; 2.很多知名的框架,为了让程序更优雅更简洁,也.转载 2021-03-06 01:10:05 · 765 阅读 · 0 评论 -
java enum枚举类
在查阅单例模式相关的问题中了解到Effective Java 作者 Josh Bloch 提倡以enum枚举类型来解决单例模式的避免多线程同步问题,而且还自动支持序列化机制,防止反序列化重新创建新的对象,绝对防止多次实例化。但此前对enum使用不甚了解,遂边学习边总结一下~定义枚举类型public enum Gender { MALE , FEMALE , UNKNOWN; public static void main(String[] args)//enum类中是可以定义main方法的原创 2021-01-29 22:17:39 · 208 阅读 · 1 评论