JAVA
文章平均质量分 67
yangm_1111
这个作者很懒,什么都没留下…
展开
-
JVM:GC算法和收集器
JVM的垃圾会回收主要发生再堆于方法区。程序计数器,本地方法栈,虚拟机栈等线程私有的内存会随着线程的消失自动清理内存。垃圾回收算法标记清楚标记整理复制回收判断对象存活1,引用计数法:无法解决对象互相循环引用问题2,可达性分析法:从GCroot开始向下搜索,搜索的路劲就是对象的引用连,而在引用链外面的就表示为不可达对象,即可回收的对象#垃圾回收器Serial收集器Serial...原创 2019-11-03 12:44:41 · 305 阅读 · 0 评论 -
JVM内存结构
java内存模型图:jvm内存模型粗略得可以分为三个部分:堆内存,方法区,堆栈(线程私有)。有些地方会把方法区归为堆内存,但实际上方法区还有另一个名字叫(非堆),也会被称为永久代(但实际上也会存在GC),不过java8已经把方法区移到了元空间,存在于本地内存。堆内存可以分为新生代区和老生代区,而新生代区有Eden,From Survivor,To Survivor(8:1:1)。参数配置...原创 2019-10-27 21:19:32 · 300 阅读 · 0 评论 -
项目学习记录-缓存数据类型与持久化
缓存数据类型value的几种数据类型:String ,Hash, Set,SortedSet,List String 设置缓存:set [key] [value] 取数据: get [key] 删除键: del [key] 查看所有key: keys * +1和-1:incr decr .在高并发时解决访问量问题。Hash: 设置缓存:hset hset hash1...原创 2018-07-11 18:26:41 · 260 阅读 · 0 评论 -
Socket编程
网络基础知识两台计算机进行通讯的三个条件: - IP地址,协议, 端口号TCP/IP五层模型应用层:HTTP,FTP,SMTP,Telnet等 传输层:TCP/IP 网络层 数据链路层:端口 物理层:网线,双绞线,网卡端口应用程序与外界进行交流的出口,但是每个功能必须独占一个,不能重复; 端口号范围是0-65535,其中0-1023为系统保留。 Socket实...原创 2018-08-01 10:08:15 · 179 阅读 · 0 评论 -
ThreadPoolExecutor 是如何定义线程池状态与线程池中线程数量的
JAVA定义了原子变量AtomicInteger,实质就是整型数。我们知道整数类型的长度为32位,这里就将整型数包装了两个内容 - runState:高的三位表示线程池的状态, - workCount:低的29为表示线程池的工作线程数量。源码private final AtomicInteger ctl = new AtomicInteger(ctlOf(RUNNING, 0));...原创 2018-08-07 14:27:30 · 1887 阅读 · 2 评论 -
项目学习记录-Redis集群搭建以及所遇到的问题
单个redis的安装与启动:项目学习记录-Redis的安装与启动 以及redis的数据类型与存储指令:项目学习记录-缓存数据类型与持久化Redis集群有多个redis节点构成的缓存结构。每个节点通过ping-pong机制通信,客户端只需要连上集群中的任意一个节点即可。且每个redis节点的缓存数据都不相同,也不同担心其中一个节点蹦掉的问题。redis允许设置备份节点,...原创 2018-08-27 19:35:42 · 454 阅读 · 0 评论 -
HashMap 源码详解
A TIP看源码的经验并不多,这次刚看起来也是没有头绪,不知从何处看起,但是还是强迫自己硬着头皮看,慢慢的就有了些思路。稍微的记一下。1,类的文档注释:英语水平好的看完这个差不多就会有自己的思路去解析这个代码了。2,构造函数:构造函数一般会重载,可挑参数少的或者常用的,看看其中的成员属性的初始化。3,成员属性:这个一般会比较多,粗略的捡重要的看下,如构造器中使用的,知道下类型,初始值等...原创 2018-11-18 23:35:24 · 172 阅读 · 0 评论 -
彻底分清简单,工厂,抽象工厂模式+优化
1. 简单工厂模式(静态工厂模式)根据客户端传入指定产品的参数,通过工厂类判断该参数,直接返回相应的具体产品向上转型对象;角色:抽象产品A:与客户端交互的抽象产品;具体产品:实现抽象产品的ProductA1 ,ProductA2,简单工厂:客户端根据工厂方法传入向的参数返回具体产品;interface ProductA{}class ProductA1 implements Pro...原创 2019-06-16 14:08:09 · 618 阅读 · 0 评论 -
Jwt初始 & session 比较
引言:最近看了一个开源项目,涉及了些比较陌生的东西,为了加深印象,做点小笔记;JWTjson web token,简单来说,就是客户端与服务器进行验证的解决方案之一;另外一种就是使用session的方式;使用原理:当客户端第一次登陆后,服务端会返回JWT格式的令牌,包含一些用户的信息,客户端则会保存这个JWT信息至Cookie或者其他数据层框架,用于下次登陆时验证。此时,服务端不需要去...原创 2019-06-21 23:41:02 · 346 阅读 · 0 评论 -
web容器ServletContext
ServletContext启动web容器流程:<context-param> <param-name>key</param-name> <param-value>value123</param-value></context-param><listener> <listener-...原创 2019-06-27 15:16:00 · 382 阅读 · 0 评论 -
使用反射实现大量业务性校验
电信行业的后台接口一般会对请求参数做很多业务性的校验,并且会随时更改或者添加删除这些校验,为避免后续代码难以维护,可以使用Java的反射机制实现。使得代码逻辑清晰,通俗易懂。ServiceTest后台接口实现反射的方法public boolean dataValidation(Object o) { Class&amp;amp;lt;ExampleValidator&amp;amp;gt; e...原创 2018-06-27 12:31:51 · 490 阅读 · 0 评论 -
ORACEL查看用户锁表信息
ORACEL查看用户锁表信息原创 2018-06-19 15:16:20 · 1636 阅读 · 0 评论 -
StackOverflowError 异常原因
StackOverflowError之前仅知道递归方法容易出现该异常,但是我的开发代码中并没有使用到递归或者死循环。 后面发现是由于两个类相互实例化导致的栈溢出。 其实这种写法本身就是高度耦合的低级错误行为。...原创 2018-06-19 14:27:20 · 1802 阅读 · 0 评论 -
Lock同步锁完美搞定生产者与消费者死锁问题
Lock同步锁解决生产者与消费者问题 这是用JDK1.5之后加入的Lock同步锁方法。使用Lock同步锁不仅可以解决死锁问题,而且可以实现唤醒单个对方线程以达到提高效率的效果。原创 2017-08-21 15:26:21 · 581 阅读 · 0 评论 -
面向对象JAVA基础笔记
面向对象笔记(自己总结):Super关键字: -应用场景:当子类想要调用父类当中的属性,方法(构造方法?)时,用【super.】来区分。 -应用:当子类重写父类的属性或方法了,但又想调用父类的此属性或方法时。即可使用【super.】调用。 注意:super只能应用在成员方法和构造方法中,不能应用在静态方法中(和this是一样的),如果在构造方法中使用super原创 2017-07-28 09:37:02 · 368 阅读 · 0 评论 -
Java排序[理解]+冒泡+二分查找
java排序: 冒泡。 插入。 选择。查找---二分递归查找原创 2017-07-29 15:58:05 · 484 阅读 · 0 评论 -
JAVA_Web知识体系(浅入浅出)
关于Servlet的生命周期原创 2017-09-25 20:45:28 · 284 阅读 · 0 评论 -
总结:前期的一个小商城项目
在开始这个小商城项目之前,就有开始写另一个学生系统的小项目。在学生系统上面就碰到了问题!不会打包!不知如何分类!发现每个业务都要创建一个Servlet! 例如:登录loginServlet用来处理login.jsp页面的数据。 注册registerServlet用来处理register.jsp。。 【秉承着jsp最佳实践的原则】原创 2017-09-27 21:48:38 · 510 阅读 · 0 评论 -
org.hibernate.service.spi.ServiceException: Unable to create requested service [org.hibernate.engine
org.hibernate.service.spi.ServiceException: Unable to create requested service [org.hibernate.engine.spi.CacheImplementor]at org.hibernate.service.internal.AbstractServiceRegistryImpl.createService(Caused by: org.hibernate.cache.CacheException: net.sf.eh原创 2017-10-18 17:04:39 · 1995 阅读 · 0 评论 -
js跨域及解决
转自: https://www.cnblogs.com/oneword/archive/2012/12/03/2799443.html1.什么是跨域 我们经常会在页面上使用ajax请求访问其他服务器的数据,此时,客户端会出现跨域问题. 跨域问题是由于javascript语言安全限制中的同源策略造成的. 简单来说,同源策略是指一段脚本只能读取来自同一来源的窗口和文档的属性,这里的同一来源指的是转载 2017-11-15 20:26:40 · 191 阅读 · 0 评论 -
比较批量处理与非批量处理
总结;虽然批处理任务大于非批处理,但是执行效率还是高的很的。批处理有批处理的好处,但是批处理时一般不使用PreparementStatment。但是如果使用Statement的话就要小心sql注入问题。原创 2017-09-11 16:14:44 · 520 阅读 · 0 评论 -
mysql事务是事务
事务事务的概念: 即一组同步执行且未提交的sql dml语句,这是数据库操作的一个单元! 事务开始于DML语句,结束于commit或rollback语句。【DDL,DCL会自动执行commit语句】。事务的四大特点:(ACID) atomicity:原子性,表示事务内的操作为一个整体,要么全部成功,or fail. consistency:一致性,一个事物内的一个操作失败,所原创 2017-09-06 20:40:47 · 720 阅读 · 0 评论 -
JDBC链接mysql数据库
/** * 连接数据库的具体步骤: * 1,导入jre包 * 2,在代码中实现数据库加载驱动! * 3,根据驱动管理获取连接对象,将连接数据库名传入连接对象 * 4,通过连接对象创建获取statement解释器。 * 5,statement的对象执行sql *原创 2017-09-05 20:18:49 · 375 阅读 · 0 评论 -
JavaIO流详解
【I/O流】 Input/Output:输入输出机制 输入机制:允许java程序获取外部设备的数据(磁盘,光盘,网络等)。 输出机制:保留java程序中的数据,输出到外部设备上(磁盘,光盘等)。 【可以看出,IO的入出是以java程序为第一人称的】 IO各种之间的关系先看张图: 流的分类: 通过不同的方法,可以对于进行分类。 1.按照功能来划分: 输入流:只能从中读取数原创 2017-08-15 14:37:30 · 23127 阅读 · 2 评论