- 博客(32)
- 收藏
- 关注
原创 Redis缓存数据库一致性
在系统开发中经常使用关系型数据库,为了提升关系型数据库的读性能,一般会使用redis加一层缓存,缓存和数据库是分离的两次操作,本文用来分析如何操作能保证缓存和数据库的数据一致性。
2025-04-09 17:31:36
242
原创 JAVA八股文-JVM-类加载器
JVM全称:Java Virtual Machine Java虚拟机。先通过下面这张图来理解一下JVM的作用。一句话简介:JVM通过解释执行或者即时编译将java字节码转为可以在不同操作系统上运行的机器码。下面图是JVM的组成:ClassLoader:类加载器,加载类文件(编译后的.class文件),将字节码文件加载到内存中并生成响应的类对象。:运行时数据区,程序运行期间需要使用到的内存区域,存放字节码信息、程序执行过程中的数据。
2024-12-13 20:52:04
836
原创 JAVA八股文-运行篇-创建项目&运行(1)
前置环境搭建:jdk、maven、idea、linux环境。一、创建一个java项目。五、上传至linux环境。三、完成,写了一段代码。
2024-12-03 15:41:20
309
原创 JAVA八股文-基础篇-数据类型
存储数值类型,如1,2,3等,没有小数,实际使用中根据业务场景选取合适的类型,如数字明确很小可以选取int、short类型,short类型使用较少,一般都用int型。尾数全1时,表达为:1 + 2^-1 + 2^-2 + 2^-3 + …+ 2^-22 + 2^-23 = 2 - 2^-23(无限接近2但是小于2)double双精度浮点型同理,占8个字节64位,1位符号位,11位指数位,52位小数位。float是单精度浮点型,占4个字节32位,1位符号位,8位指数位,23位小数位。
2024-11-27 17:27:31
895
原创 HashMap学习
1、key和value都可以为空2、默认容量是16,但是如果用户通过构造函数置顶了一个数字作为容量,那么hash就会选择大于该数字的第一个2的幂作为容量。(比如 3->4,5->8,9->16),建议设置hashmap的初始容量。在元素数量固定时设置初始容量设置值:要存储元素的个数/0.75+1 ,在存储过程中不会有扩容操作,但是会浪牺牲一定的内存。3、在jdk1...
2019-04-29 11:34:56
179
转载 TCP/IP协议知识介绍
https://blog.youkuaiyun.com/yulyu/article/details/69062288 讲的真的很好
2018-11-05 19:35:57
185
原创 tomcat9+jdk11+linux
1、环境变量需将JRE_HOME指向JAVA_HOME2、tomcat依赖于jdk/lib目录中的Logging.properties文件,jdk11没有,将jdk8的此文件放入jdk11/lib下后问题解决.3、Tomcat9依赖webService包 这个模块已经在jdk11中下掉了,所以找不到 解决办法:jaxws-api-2.3.1.jar放在to...
2018-10-30 18:05:39
2270
转载 TCP UDP 学习
转载:https://blog.youkuaiyun.com/oyhy_/article/details/702018551、摘要tcp是面向连接的,可靠的字节流协议。因此,在传输数据之前通信双方必须建立一个tcp连接,建立tcp连接需要在服务器和客户端之间进行三次握手。通信双方数据传输完毕之后连接释放,释放连接需要在通信双方之间进行四次挥手。 2、tcp协议端口的连接状态1)、LISTE...
2018-10-18 17:43:44
171
转载 自旋锁
自旋锁自旋锁的原理非常简单,如果持有锁的线程能在很短时间内释放锁资源,那么那些等待竞争锁的线程就不需要做内核态和用户态之间的切换进入阻塞挂起状态,它们只需要等一等(自旋),等持有锁的线程释放锁后即可理解获取锁,这样就避免用户线程和内核的切换的消耗。但是线程自旋是需要消耗cpu的,说白了就是让cpu做无用功,如果一直获取不到锁,那线程也不能一直占用cpu自旋做无用功。所以需要设定一个自旋等待...
2018-10-15 20:17:23
697
1
转载 乐观锁与悲观锁相关知识
内容来自:https://www.toutiao.com/a6579186676071924227/?tt_from=weixin&utm_campaign=client_share&wxshare_count=1&timestamp=1539572340&app=news_article&utm_source=weixin&iid=45822909...
2018-10-15 15:44:48
198
转载 java并发编程之happens-before原则,先行发生原则
下文为自己学习笔记。关键词理解:JMM:java memory model java内存模型int a=1;//Aint b=3;//Bint c=a*b;//C在上边这段代码中,有A\B\C个语句C依赖于A、B两个语句,所以Ahappens-before于C,Bhappens-before于C,但是A和B之间没有依赖关系,先执行A或者先执行B对程序结果没有影响。总结...
2018-10-12 18:21:28
384
转载 http请求相关知识
请求浏览器首先向服务器发送http请求,请求包括:方法:get/post,get仅请求资源,post会附带用户数据;路径:/html/path;域名:由host头指定:Host:www.sina.com.cn;其他header;如果是post,请求还会包括一个body,包含用户数据。 2、 服务器向浏览器返回HTTP响应,响应包括:响应代码:200表示成...
2018-10-12 17:38:36
158
转载 ReenTrantLock和Synchronized
相同点:都是可重入锁,都是同一个线程没进入一次,锁的计数器自增1,等到锁的计数器为0时释放锁。不同点:1、Synchronized依赖jvm实现,实现方式比较难见到,ReetTrantLock依赖JDK实现,有源码可看。2、Synchronized使用简单便捷,加锁,解锁由编译器实现;ReenTrantLock需要手动声明、加锁、解锁,功能更细粒度和灵活。3、ReenTrant...
2018-09-20 12:15:17
149
转载 面向对象
三大特性封装、继承、多态1、封装,隐藏类的内部实现机制,在不影响使用的情况下改变类的内部结构,同时也保护了数据,对外界它的内部细节是隐藏的,暴露给外界的是它的访问方法。2、继承,是为了重用父类代码,同时也为实现多态做了铺垫。3、多态,父类指向子类对象,Parent o=new Child();一个父类,可以指向多个子类。 ps1:向上转型,Parent o=new Chil...
2018-09-19 14:17:40
122
原创 mat安装教程
1、安装,不依赖eclipse,独立安装mat,选择自己系统相应的版本下载 下载地址:https://eclipse.org/mat/downloads.php 解压压缩文件,执行下面执行文件。 ps:我系统配置的jdk版本是32为的jdk1.6 但是下载的是64位,这种情况可以在ini文件中指定jdk ...
2018-09-18 19:48:23
2530
转载 java存储机制
存储位置介绍:1、堆:new出来的对象。2、栈:基本类型的变量数据、对象的引用。3、静态域:存放静态成员(static定义)。4、寄存器:最快的存储区,由编译器分配,程序无法控制。5、常量池:存放字符串常量和基本类型常量(static final)。 实例介绍:对于以上这段代码,date为局部变量,i,d,m,y都是形参为局部变量,day,month,ye...
2018-08-03 15:33:07
213
转载 jvm加载class文件机制j
1、加载类文件 a、读取class文件,从jar包、war包、class文件、jsp文件等处都可以。 a.1、采用双亲委派机制加载类,由classLoader和其子类完成,支持自定义ClassLoader。 如下图,由下至上,当一个类加载器收到类加载任务,会先交给其父类加载器去完成, 因...
2018-08-03 10:52:21
330
原创 Linux线程相关指令
cat /opt/pid/status 查看某进程下的线程数cat /proc/sys/kernel/threads-max linux单进程可创建最大线程数
2016-08-12 11:26:29
295
转载 spring3零配置注解实现Bean定义(包括JSR-250、JSR-330)
注解实现Bean定义 概述前边介绍的Bean定义全是基于XML方式定义配置元数据,且在【12.2注解实现Bean依赖注入】一节中介绍了通过注解来减少配置数量,但并没有完全消除在XML配置文件中的Bean定义,因此有没有方式完全消除XML配置Bean定义呢? Spring提供通过扫描类路径中的特殊注解类来自动注册Bean定义。同注解驱动事务一样需要开启自动扫描并注册B
2015-06-15 17:54:32
671
原创 struts2使用session 的三种方式
总结了三种方式,三种都测试过,前两种有时获取到的session为空,可能是版本低的问题,第三种测试无问题
2015-06-08 15:24:46
1020
转载 struts2 .do .action等后缀访问问题
默认情况下,struts2是无法处理以.do为后缀的请求url的(默认情况下是.action或者不填,可以参见org.apache.struts2包下的default.properties文件)。 但是struts2是一个高配置的框架,所以我们可以通过配置来处理以.do为后缀的请求。 struts2提供了一系列的常量来供我们来配置。 如:我们可以在struts.xml文件中配置
2015-06-05 13:57:51
1685
转载 oscache 页面级缓存实例
oscache 作为缓存,页面缓存是一个特色 ,主要用于对web应用中的某些动态页面进行缓存,尤其是那些需要生成PDF格式文件/报表、图片文件等的页面,不仅减少了数据库的交互、减少数据库服务器的压力,而且对于减少web服务器的性能消耗有很显著的效果。
2015-05-27 16:24:09
434
转载 ehcahce的diskSpoolBufferSizeMB参数解析,不能过大
前段时间在项目中使用ehcache做缓存,由于数据量比较大我想调大diskSpoolBufferSizeMB来提高ehcache的存储速度,结果调大到2GB以上,ehcache的放入速度变得异常缓慢,在网上找了好久也没找到原因,今天终于找到原因所在。由于diskSpoolBufferSizeMB在内部实际是以字节为单位,2GB已经超过正整数表示的范围,导致diskSpoolBufferSizeMB
2015-05-22 18:35:13
2094
原创 Java中 ehcache简单使用实例
ehcache 简单实用介绍 Java中常用的本地缓存,入门级文章。将数据缓存至本地的简单方法。简单实用的java 本地缓存框架。使用步骤:1、添加jar包 2、在src下添加配置文件 ehcache.xml ehcache 可以将缓存的数据存储在内存中,也可以存储在磁盘中,也可以两者都存,<ehcache xmlns:xsi="http://www.w3.org/200
2015-05-14 18:04:40
3954
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人