java
a407479
这个作者很懒,什么都没留下…
展开
-
重写hashcode和equals方法
最近在看jvm优化的原理,不知不觉就看到引用和指针上的区别了,再然后就看了hash(散列)算法的实现思路,越看越不着边际,好吧,言归正传。Java里面比较对象相等,有两种方式,一种是使用==号,另一种是使用equals方法。==号: 判断两个对象的内存地址是否相等,相等则为同一个对象,不相等则不是, 对于基本类型数据,则只判断两个值是否相同。 equals方法: Object类默认都实现了e原创 2015-06-08 22:49:35 · 462 阅读 · 0 评论 -
熔断机制hystrix
一、问题产生雪崩效应:是一种因服务提供者的不可用导致服务调用者的不可用,并将不可用逐渐放大的过程 正常情况下的服务:某一服务出现异常,拖垮整个服务链路,消耗整个线程队列,造成服务不可用,资源耗尽: 形成过程: 1)服务提供者不可用 a)硬件故障:硬件损坏造成的服...转载 2018-08-17 11:35:03 · 1282 阅读 · 0 评论 -
为什么说Java天生支持多线程
Java的线程是由jvm来管理的,它如何映射到操作系统的线程是由jvm实现来决定的。lwp轻量级进程是对内核线程的一层封装,提供给用户线程调用jvm正是被设计成采用lwp(轻量级进程)来实现与操作系统的内核线程形成一比一的映射关系,来实现Java内部的多线程,并提供了相应的语法来进行编码,其实调用Java的多线程就是调用内核线程来执行,所以说Java 天生是支持多线程的语言。但内核线程都有一个内核...原创 2018-06-12 20:49:03 · 2847 阅读 · 0 评论 -
透彻的掌握 Spring 中@transactional 的使用
事务管理是应用系统开发中必不可少的一部分。Spring 为事务管理提供了丰富的功能支持。Spring 事务管理分为编码式和声明式的两种方式。编程式事务指的是通过编码方式实现事务;声明式事务基于 AOP,将具体业务逻辑与事务处理解耦。声明式事务管理使业务代码逻辑不受污染, 因此在实际使用中声明式事务用的比较多。声明式事务有两种方式,一种是在配置文件(xml)中做相关的事务规则声明,另一种是基于@Tr...转载 2018-05-25 20:07:44 · 658 阅读 · 0 评论 -
tomcat连接数、线程数关系
个人对tomcat连接器3个属性maxConnections、maxThreads、acceptCount的理解: 先摘取官网对这3个属性的描述:acceptCount The maximum queue length for incoming connection requests when all possible request processing threads are in use.转载 2017-07-26 15:59:11 · 5313 阅读 · 1 评论 -
JAVA Socket 底层是怎样基于TCP/IP 实现的
首先必须明确:TCP/IP模型中有四层结构: 应用层(Application Layer)、传输层(Transport Layer)、网络层(Internet Layer )、链路层(LinkLayer) 其中Ip协议(Internet Protocol)是位于网络层的,TCP协议时位于传输层的。通过Ip协议可以使可以使两台计算机使用同一种语言,从而允许Internet上连接不转载 2017-07-17 17:33:14 · 491 阅读 · 0 评论 -
关于图片或者文件在数据库的存储方式归纳
商品图片,用户上传的头像,其他方面的图片。目前业界存储图片有两种做法:1、 把图片直接以二进制形式存储在数据库中一般数据库提供一个二进制字段来存储二进制数据。比如mysql中有个blob字段。oracle数据库中是blob或bfile类型2、 图片存储在磁盘上,数据库字段中保存的是图片的路径。一、图片以二进制形式直接存储在数据库中第一种存储实现(php语言):大体思路:1、将读取到的图片用php转载 2016-06-12 10:56:26 · 18577 阅读 · 0 评论 -
JDK之jstat的用法
jstat的用法用以判断JVM是否存在内存问题呢?如何判断JVM垃圾回收是否正常?一般的top指令基本上满足不了这样的需求,因为它主要监控的是总体的系统资源,很难定位到java应用程序。Jstat是JDK自带的一个轻量级小工具。全称“Java Virtual Machine statistics monitoring tool”,它位于java的bin目录下,主要利用JVM内建的指令对Java应用程转载 2016-04-21 16:08:41 · 405 阅读 · 0 评论 -
关于java中的OutOfMemory种类和解决方法
1、OutOfMemory的三种情况 1) 永久区溢出 Exception in thread “main” java.lang.OutOfMemoryError: PermGen space 这一部分用于存放Class和Meta的信息,Class在被 Load的时候被放入PermGen space区域(包括常量池: 静态变量),它和存放Instance的Heap区域不同,GC(Garbage转载 2016-04-20 11:59:11 · 510 阅读 · 0 评论 -
Xms Xmx PermSize MaxPermSize 区别
Eclipse崩溃,错误提示: MyEclipse has detected that less than 5% of the 64MB of Perm Gen (Non-heap memory) space remains. It is strongly recommended that you exit and restart MyEclipse with new virtual mac转载 2016-04-20 11:43:24 · 250 阅读 · 0 评论 -
欢迎使用CSDN-markdown编辑器
进程、线程、程序、应用程序的区别看到一种说法是“一个程序至少有一个进程,一个进程至少有一个线程”,这种把程序与进程,进程与线程的关系混淆的说法是错误的。程序(program)只能有一个进程,一个进程就是一个程序。有人说,我打开一个程序,比如chrome,有十多个进程呢,这是咋回事。那就是十多个程序,操作系统给他们分配了彼此独立的内存,相互执行不受彼此约束,分配同样时间的CPU。对于用户而言,他们是一转载 2015-11-15 21:44:47 · 247 阅读 · 0 评论 -
解读Tomcat和负载均衡的意思
关于Tomact我们都知道它是一种嵌入的脚本软件,基本上我们在Linux下来来完成负载均衡。那么针对负载均衡和Tomact我们来进行一个具体的说明吧。之后再对他们的设定过程给出具体的内容。◆Tomcat的集群在Tomcat先前的版本中(4.1)可以通过第三方的jar文件来实现集群。在一个集群内安装和配置多个Tomcat实例不是一件容易的事情。将集群的能力增加到开放源的servlet容器(Tomcat转载 2015-08-27 10:33:00 · 972 阅读 · 0 评论 -
java servlet和jsp区别
目前常见的动态网页技术有CGI、ASP、PHP、JSP这几种。 最早出现的技术是CGI(通用网关接口),原先的web服务器并不支持动态的访问,即实时更新的网页内容,所以出现了CGI,但是CGI运行效率低下,每次访问就会创建一个进程,访问结束就会关闭进程,这样给服务器带来了很大压力,所以sun公司就根据java applet设计出了java servlet技术。 java servlet是独立于平原创 2015-07-06 15:05:51 · 1871 阅读 · 0 评论 -
Java引用传递和值传递
Java值传递: 是针对Java基本类型(int等)数据的传递,在方法执行完以后,形参值的改变不会影响到实参的数据,这个没什么好说的。 Java引用传递: 首先需要明确一点,引用的含义,引用是个通用名词,在C++中表示变量的别名,而在Java中,引用类似于C++的指针,但又不太相同,因为Java的引用并不需要你自己去控制对象的使用周期,由于Jvm自带垃圾回收,所以该引用是是对象在jvm中的内存原创 2015-06-10 14:43:06 · 644 阅读 · 0 评论 -
mybatis源码阅读第一天
mybatis源码阅读第一天源码阅读三要素mybatis全局配置文件mybatis初始化Configuration初始化sqlSessionFactory会话创建总图SqlSessionFactory初始化遇到的问题源码阅读三要素先读文档,在读代码,找到入口,带着目的读(我的目的是了解设计模式、编码风格、总体规划、分包分类等)梳理整体结构,画图加深记忆,先不要钻细节不要全读,60%左右就...原创 2019-08-25 14:54:00 · 137 阅读 · 0 评论