自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(70)
  • 收藏
  • 关注

原创 列出JDK中常用的Java包

列出JDK中的常用Java包1:java.lang2:java.sql3:java.io4:java.math5:java.text6:java.util7:java.net8:java.awt9:java.applet10:java.nio  

2018-08-29 15:53:01 426

转载 java异常处理 Exception、error、运行时异常和一般异常有何异同

一、开场白对于程序运行过程中的可能出现异常情况,java语言使用一种称为异常处理的错误捕捉机制进行处理。相信大家对 try { }catch( ){} finally{} 这种结构非常熟悉,使用频率极高。既然经常使用它,而且也是面试常问知识点,我们就有必要去深入地了解一下。也谈不上深入,只是java语言的基本功。下面,开始吧!二、异常分类在java中,异常对象都是派生于Throwabl...

2018-08-29 14:28:27 297

转载 Java中final、finally和finalize的区别

final、finally、finalize的区别1、final修饰符(关键字)。被final修饰的类,就意味着不能再派生出新的子类,不能作为父类而被子类继承。因此一个类不能既被abstract声明,又被final声明。将变量或方法声明为final,可以保证他们在使用的过程中不被修改。被声明为final的变量必须在声明时给出变量的初始值,而在以后的引用中只能读取。被final声明的方法也同样只...

2018-08-29 14:12:48 205

转载 HTTP1.0 HTTP 1.1 HTTP 2.0主要区别

HTTP1.0 HTTP 1.1主要区别长连接 HTTP 1.0需要使用keep-alive参数来告知服务器端要建立一个长连接,而HTTP1.1默认支持长连接。HTTP是基于TCP/IP协议的,创建一个TCP连接是需要经过三次握手的,有一定的开销,如果每次通讯都要重新建立连接的话,对性能有影响。因此最好能维持一个长连接,可以用个长连接来发多个请求。节约带宽HTTP 1.1支...

2018-08-20 10:12:31 220

转载 深入研究java.lang.ThreadLocal类

http://blog.51cto.com/lavasoft/51926深入研究java.lang.ThreadLocal类一、概述 ThreadLocal是什么呢?其实ThreadLocal并非是一个线程的本地实现版本,它并不是一个Thread,而是threadlocalvariable(线程局部变量)。也许把它命名为ThreadLocalVar更加合适。线程局部变量(Threa...

2018-08-03 15:08:24 112

原创 内存管理与数据淘汰机制

最大内存设置默认情况下,在32位OS中,Redis最大使用3GB的内存,在64位OS中则没有限制。在使用Redis时,应该对数据占用的最大空间有一个基本准确的预估,并为Redis设定最大使用的内存。否则在64位OS中Redis会无限制地占用内存(当物理内存被占满后会使用swap空间),容易引发各种各样的问题。通过如下配置控制Redis使用的最大内存:在内存占用达到了maxmem...

2018-08-02 16:06:42 281

原创 linux 查看端口号命令

Linux下如果我们需要知道2809号端口的情况的话,我们可以这样,如下命令:$netstat -pan|grep 2809  tcp    0   0 0.0.0.0:2809   0.0.0.0:*   LISTEN   9493/java下面是常用参数的解释:NETSTAT [-a] [-b] [-e] [-n] [-o] [-p proto] [-r] [-s] [-v] ...

2018-08-02 15:24:09 10011

原创 Linux 查看进程以及子进程/线程

1、 查看进程信息# ps  -ef | grep 114 root       114     2  0 Jun23 ?        00:00:00 [kswapd1]2、查看进程的子进程/线程# pstree -p 5346或者# ps mp 5346   -o THREAD,tid USER     %CPU PRI SCNT WCHAN  USER ...

2018-08-02 15:05:14 3773

转载 面试必备:什么是一致性Hash算法?

原址:https://blog.csdn.net/bntX2jSQfEHy7/article/details/79549368最近有小伙伴跑过来问什么是Hash一致性算法,说面试的时候被问到了,因为不了解,所以就没有回答上,问我有没有相应的学习资料推荐,当时上班,没时间回复,晚上回去了就忘了这件事,今天突然看到这个,加班为大家整理一下什么是Hash一致性算法,希望对大家有帮助!文末送书,长按抽...

2018-08-02 12:20:04 182

原创 HTTP请求报文和HTTP响应报文

HTTP报文是面向文本的,报文中的每一个字段都是一些ASCII码串,各个字段的长度是不确定的。HTTP有两类报文:请求报文和响应报文。HTTP请求报文一个HTTP请求报文由请求行(request line)、请求头部(header)、空行和请求数据4个部分组成,下图给出了请求报文的一般格式。or<request-line><headers><blank line>[<requ...

2018-08-02 11:03:09 214

转载 HTTPS 建立连接的详细过程

简介HTTPS是在HTTP的基础上和ssl/tls证书结合起来的一种协议,保证了传输过程中的安全性,减少了被恶意劫持的可能.很好的解决了解决了http的三个缺点(被监听、被篡改、被伪装)对称加密和非对称加密 对称加密 即加密的密钥和解密的密钥相同, 非对称加密 非对称加密将密钥分为公钥和私钥,公钥可以公开,私钥需要保密,客户端公钥加密的数据,服务端可以通过私钥来解密...

2018-08-02 10:41:20 216

原创 java 三种工厂模式

一、简单工厂模式一个栗子: 我喜欢吃面条,抽象一个面条基类,(接口也可以),这是产品的抽象类。先来一份兰州拉面(具体的产品类):程序员加班必备也要吃泡面(具体的产品类):还有我最爱吃的家乡的干扣面(具体的产品类):准备工作做完了,我们来到一家“简单面馆”(简单工厂类),菜单如下:简单面馆就提供三种面条(产品),你说你要啥,他就给你啥。这里我点了一份...

2018-08-01 21:48:17 218

原创 观察着模式

1.观察者模式模式简介定义观察者模式(又被称为发布-订阅(Publish/Subscribe)模式,属于行为型模式的一种,它定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态变化时,会通知所有的观察者对象,使他们能够自动更新自己。观察者模式结构图 在观察者模式中有如下角色:Subject:抽象主题(抽象被观察者),抽象主题角色把所有观...

2018-08-01 18:45:04 223

转载 Linux服务器中高负载现象故障排查指南

服务器高负载因何而起?下列项目的过度使用会直接导致高负载问题:CPU 内存(包括虚拟内存) 磁盘I/O该如何检查这些项目?这取决于大家是要审查当前资源使用情况还是历史资源使用情况。当然,在本文中我们将从这两方面进行探讨。关于sar的简要说明历史资源使用情况可通过sar工具查看,该工具在默认情况下应该通过sysstat软件包安装在所有cPanel服务器当中。只要通过cron...

2018-08-01 11:18:27 529

原创 如何判断服务器的负载是不是过高

相关命令:uptime[root@hong ~]# uptime 20:12:11 up 2:09, 2 users, load average: 0.05, 0.09, 0.0920:12:11代表当前时间up 2:09代表服务器启动时长2 users代表两个用户登入0.05, 0.09, 0.09分别代表1分钟前,5分钟前,15分钟前到现在负载的平均值那么如何来判断负载...

2018-08-01 09:35:02 3753

原创 死锁的原因和必要条件+解决死锁的基本方法

死锁:指多个进程因竞争共享资源而造成的一种僵局,若无外力作用,这些进程都将永远不能再 向前推进。安全状态与不安全状态:安全状态指系统能按某种进程顺序来为每个进程分配其所需资源,直 至最大需求,使每个进程都可顺利完成。若系统不存在这样一个序列, 则称系统处于不安全状态。产生死锁的原因:(1)竞争系统资源 (2)进程的推进顺序不当 互斥条件:进程要求对所分配的资源进行排它性控制,即在一...

2018-08-01 09:25:41 214

原创 K-means 算法

K-means算法    聚类算法是一种无监督学习算法。k均值算法是其中应用最为广泛的一种,算法接受一个未标记的数据集,然后将数据聚类成不同的组。K均值是一个迭代算法,假设我们想要将数据聚类成K个组,其方法为:随机选择K个随机的点(称为聚类中心); 对与数据集中的每个数据点,按照距离K个中心点的距离,将其与距离最近的中心点关联起来,与同一中心点关联的所有点聚成一类; 计算每一组的均值,...

2018-08-01 09:06:02 328

原创 cookie 和session 的区别:

1、cookie数据存放在客户的浏览器上,session数据放在服务器上。2、cookie不是很安全,别人可以分析存放在本地的COOKIE并进行COOKIE欺骗   考虑到安全应当使用session。3、session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能   考虑到减轻服务器性能方面,应当使用COOKIE。4、单个cookie保存的数据不能超过4K,很...

2018-07-30 10:45:36 97

原创 MySQL B+树索引和Hash索引的区别

B+树是一个平衡的多叉树。B+树从根节点到叶子节点的搜索效率基本相当,不会出现大幅波动。哈希索引采用一定的哈希算法,把键值换成新的哈希值,检索时不需要类似B+树那样从根节点逐级查找,只需一次哈希算法即可立刻定位到相应的位置。两者的区别:哈希索引的优势:(1)等值查询。哈希索引具有绝对优势(前提是:没有大量重复键值,如果大量重复键值时,哈希索引的效率很低,因为存在所谓的哈希碰撞问题。...

2018-07-29 21:53:54 281

原创 抽象类接口区别和相同点

接口和抽象类都不能实例化 抽象类可以有构造方法,接口中不能有构造方法。 抽象类中可以有普通成员变量,接口中没有普通成员变量 抽象类中可以包含非抽象的普通方法 抽象类中的抽象方法的访问类型可以是public,protected,但接口中的抽象方法只能是public类型的,并且默认即为public abstract类型。 抽象类中可以包含静态方法,接口中不能包含静态方法 抽象类和接口中都可...

2018-07-29 21:12:48 306

原创 什么对象可以作为根节点

Java通过可达性分析来判断对象是否存活。基本思想是通过一系列称为“GC roots”的对象作为起始点,可以作为根节点的是:  虚拟机栈(栈帧中的本地变量表)中引用的对象   本地方法栈中JNI(即一般说的Native方法)引用的对象   方法区中类静态属性引用的对象   方法区中常量引用的对象作为GC Roots的节点主要在全局性的引用(例如常量或类静态属性)与执行上下文(例如栈帧...

2018-07-29 21:02:17 1569

转载 常见的几种单例模式

 单例模式:是一种常用的软件设计模式,在它的核心结构中值包含一个被称为单例的特殊类。一个类只有一个实例,即一个类只有一个对象实例。  对于系统中的某些类来说,只有一个实例很重要,例如,一个系统中可以存在多个打印任务,但是只能有一个正在工作的任务;售票时,一共有100张票,可有有多个窗口同时售票,但需要保证不要超售(这里的票数余量就是单例,售票涉及到多线程)。如果不是用机制对窗口对象进行唯一化将...

2018-07-29 15:54:56 142

原创 装饰者模式

1、 装饰者模式:动态地将责任附加到对象上。若要扩展功能,装饰者提供了比继承更加有弹性的替代方案。2、组合和继承的区别继承。继承是给一个类添加行为的比较有效的途径。通过使用继承,可以使得子类在拥有自身方法的同时,还可以拥有父类的方法。但是使用继承是静态的,在编译的时候就已经决定了子类的行为,我们不便于控制增加行为的方式和时机。组合。组合即将一个对象嵌入到另一个对象中,由另一个对象来决定...

2018-07-29 15:31:58 2917

原创 数据库创建索引有什么优点和缺点

数据库中索引的优缺点为什么要创建索引呢?这是因为,创建索引可以大大提高系统的性能,优点:第一,通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性。第二,可以大大加快数据的检索速度,这也是创建索引的最主要的原因。第三,可以加速表和表之间的连接,特别是在实现数据的参考完整性方面特别有意义。第四,在使用分组和排序子句进行数据检索时,同样可以显著减少查询中分组和排序的时间。第五,...

2018-07-29 14:50:07 232

转载 程序猿的日常——JVM内存模型与垃圾回收

Java开发有个很基础的问题,虽然我们平时接触的不多,但是了解它却成为Java开发的必备基础——这就是JVM。在C++中我们需要手动申请内存然后释放内存,否则就会出现对象已经不再使用内存却仍被占用的情况。在Java中JVM内置了垃圾回收的机制,帮助开发者承担对象的创建和释放的工作,极大的减轻了开发的负担。那是不是我们就不需要了解JVM了,显然在做一些优化或者深入研究应用性能的时候,JVM还是起了很...

2018-07-28 23:25:17 149

原创 局域网内与局域网间主机间通信

个人理解,要理解主机之间通信原理 就是理解 数据包在两台主机之间的封装和解封装过程 一.局域网间主机通信(1)源主机在发起通信之前,将自己的IP地址与目的主机的IP地址进行比较,如果源主机判断目的主机与自己位于不同网段时,它需要通过网关来递交报文的,所以它首先需要通过一个ARP请求报文获取网关的MAC地址(在源主机不知道网关MAC地址的情形下),即源主机先发送ARP请求帧以获取网关IP地址...

2018-07-28 16:48:56 3266

原创 什么是WEB服务器? 常用的WEB服务器有哪些?

一、什么是WEB服务器    Web服务器可以解析HTTP协议。当Web服务器接收到一个HTTP请求,会返回一个HTTP响应,例如送回一个HTML页面。为了处理一个请求Web服务器可以响应一个静态页面或图片,进行页面跳转或者把动态响应的产生委托给一些其它的程序例如CGI脚本,JSP脚本,servlets,ASP脚本,服务器端JavaScript,或者一些其它的服务器端技术。无论它们(译者注:脚...

2018-07-28 15:55:23 13676

原创 从输入URL到浏览器显示页面发生了什么

   当在浏览器地址栏输入网址,如:www.baidu.com后浏览器是怎么把最终的页面呈现出来的呢?这个过程可以大致分为两个部分:网络通信和页面渲染。一、网络通信 互联网内各网络设备间的通信都遵循TCP/IP协议,利用TCP/IP协议族进行网络通信时,会通过分层顺序与对方进行通信。分层由高到低分别为:应用层、传输层、网络层、数据链路层。发送端从应用层往下走,接收端从数据链路层网上走。如图...

2018-07-28 15:16:39 1384

原创 Spring常用的三种注入方式+{集合注入(set注入一种)}

Spring通过DI(依赖注入)实现IOC(控制反转),常用的注入方式主要有三种:构造方法注入,setter注入,基于注解的注入。构造方法注入先简单看一下测试项目的结构,用maven构建的,四个包:entity:存储实体,里面只有一个User类dao:数据访问,一个接口,两个实现类service:服务层,一个接口,一个实现类,实现类依赖于IUserDaotest:测试包 在...

2018-07-28 14:09:47 15384 3

原创 Spring bean生命周期

Spring中Bean的管理是其最基本的功能,根据下面的图来了解Spring中Bean的生命周期:(1)BeanFactoryPostProcessor的postProcessorBeanFactory()方法:若某个IoC容器内添加了实现了BeanFactoryPostProcessor接口的实现类Bean,那么在该容器中实例化任何其他Bean之前可以回调该Bean中的postPrces...

2018-07-28 11:49:05 119

原创 Spring之AOP由浅入深

1.AOP的作用      在OOP中,正是这种分散在各处且与对象核心功能无关的代码(横切代码)的存在,使得模块复用难度增加。AOP则将封装好的对象剖开,找出其中对多个对象产生影响的公共行为,并将其封装为一个可重用的模块,这个模块被命名为“切面”(Aspect),切面将那些与业务无关,却被业务模块共同调用的逻辑提取并封装起来,减少了系统中的重复代码,降低了模块间的耦合度,同时提高了系统的可维护...

2018-07-28 10:42:31 92

转载 Spring IOC

IOC(DI):java程序中的每个业务逻辑至少需要两个或以上的对象来协作完成。通常,每个对象在使用他的合作对象时,自己均要使用像new object() 这样的语法来完成合作对象的申请工作。你会发现:对象间的耦合度高了。而IOC的思想是:Spring容器来实现这些相互依赖对象的创建、协调工作。对象只需要关系业务逻辑本身就可以了。从这方面来说,对象如何得到他的协作对象的责任被反转了(IOC、D...

2018-07-27 17:37:21 91

原创 HashMap中是如何形成环形链表的

导读:经过前面的博客总结,可以知道的是,HashMap是有一个一维数组和一个链表组成,从而得知,在解决冲突问题时,hashmap选择的是链地址法。为什么HashMap会用一个数组这链表组成,当时给出的答案是从那几种解决冲突的算法中推论的,这里给出一个正面的理由:1,为什么用了一维数组:数组存储区间是连续的,占用内存严重,故空间复杂的很大。但数组的二分查找时间复杂度小,为O(1);数组的特点是:...

2018-07-27 16:46:11 7950 14

原创 谈谈数据库的ACID

https://blog.csdn.net/shuaihj/article/details/14163713                       谈谈数据库的ACID一.事务  定义:所谓事务,它是一个操作序列,这些操作要么都执行,要么都不执行,它是一个不可分割的工作单位。准备工作:为了说明事务的ACID原理,我们使用银行账户及资金管理的案例进行分析。二.ACID...

2018-07-27 14:57:04 178

原创 Java并发编程:线程池的使用

                                                                                    Java并发编程:线程池的使用  在前面的文章中,我们使用线程的时候就去创建一个线程,这样实现起来非常简便,但是就会有一个问题:  如果并发的线程数量很多,并且每个线程都是执行一个时间很短的任务就结束了,这样频繁创建线程就会...

2018-07-27 12:52:46 114

原创 Java并发包中CyclicBarrier的工作原理、使用示例

1. CyclicBarrier的介绍与源码分析CyclicBarrier 的字面意思是可循环(Cyclic)使用的屏障(Barrier)。它要做的事情是,让一组线程到达一个屏障(也可以叫同步点)时被阻塞,直到最后一个线程到达屏障时,屏障才会开门,所有被屏障拦截的线程才会继续干活。线程进入屏障通过CyclicBarrier的await()方法。CyclicBarrier默认的构造方法是Cyclic...

2018-06-08 10:15:37 175

转载 java集合---ConcurrentHashMap原理分析

一、背景:线程不安全的HashMap    因为多线程环境下,使用Hashmap进行put操作会引起死循环,导致CPU利用率接近100%,所以在并发情况下不能使用HashMap。效率低下的HashTable容器     HashTable容器使用synchronized来保证线程安全,但在线程竞争激烈的情况下HashTable的效率非常低下。因为当一个线程访问HashTable的同步方法时,其他线...

2018-06-08 09:41:30 99

原创 JSON 小知识

GoodsEntity goodsEntity = JSON.parseObject(goods, GoodsEntity.class);JSON.parseObject,是将Json字符串转化为相应的对象;JSON.toJSONString则是将对象转化为Json字符串。List<GoodsSkuEntity> skuList = JSON.parseArray(skuls, Goo...

2018-04-20 10:54:01 127

转载 redis(1)

(1)什么是redis?redis 是一个基于内存的高性能key-value数据库。 (有空再补充,有理解错误或不足欢迎指正)(2)Reids的特点Redis本质上是一个Key-Value类型的内存数据库,很像memcached,整个数据库统统加载在内存当中进行操作,定期通过异步操作把数据库数据flush到硬盘上进行保存。因为是纯内存操作,Redis的性能非常出色,每秒可以处理超过 10万次读写操...

2018-04-04 19:55:21 90

转载 nosql--简介

NoSQL,泛指非关系型的数据库。随着互联网web2.0网站的兴起,传统的关系数据库在应付web2.0网站,特别是超大规模和高并发的SNS类型的web2.0纯动态网站已经显得力不从心,暴露了很多难以克服的问题,而非关系型的数据库则由于其本身的特点得到了非常迅速的发展。NoSQL数据库的产生就是为了解决大规模数据集合多重数据种类带来的挑战,尤其是大数据应用难题。(一)NoSQL数据库的四大分类1)键...

2018-04-04 19:39:26 72

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除