java
文章平均质量分 67
文强强
有什么推荐的基础书吗各位大神
展开
-
SSL协议握手详解
图解SSL/TLS协议本周,CloudFlare宣布,开始提供Keyless服务,即你把网站放到它们的CDN上,不用提供自己的私钥,也能使用SSL加密链接。我看了CloudFlare的说明(这里和这里),突然意识到这是绝好的例子,可以用来说明SSL/TLS协议的运行机制。它配有插图,很容易看懂。下面,我就用这些图片转载 2017-11-06 20:05:44 · 1503 阅读 · 0 评论 -
Http错误码从1 到5 详解
1xx(临时响应)表示临时响应并需要请求者继续执行操作的状态码。100(继续)请求者应当继续提出请求。服务器返回此代码表示已收到请求的第一部分,正在等待其余部分。101(切换协议)请求者已要求服务器切换协议,服务器已确认并准备切换。2xx(成功)表示成功处理了请求的状态码。原创 2017-11-06 20:31:33 · 2525 阅读 · 0 评论 -
从输入一个url到页面出现经历了什么过程
最近在进行前端面试方面的一些准备,看了网上许多相关的文章,发现有一个问题始终绕不开: 在浏览器中输入URL到整个页面显示在用户面前时这个过程中到底发生了什么。仔细思考这个问题,发现确实很深,这个过程涉及到的东西很多。这个问题的回答真的能够很好的考验一个web工程师的水平,于是我自问自答一番。总体来说分为以下几个过程:DNS解析TCP连接发送HTTP请求服原创 2017-11-06 20:38:29 · 6261 阅读 · 0 评论 -
java的守护线程和非守护线程详解
守护线程与非守护线程最近在看多线程的Timer章节,发现运用到了守护线程,感觉Java的基础知识还是需要补充。Java分为两种线程:用户线程和守护线程所谓守护线程是指在程序运行的时候在后台提供一种通用服务的线程,比如垃圾回收线程就是一个很称职的守护者,并且这种线程并不属于程序中不可或缺的部分。因 此,当所有的非守护线程结束时,程序也就终止了,同时会杀死进程中的所有守护线程。原创 2017-11-07 14:06:31 · 437 阅读 · 0 评论 -
Thread类中join()方法
Thread类中有一个join()方法,在一个线程中启动另外一个线程的join方法,当前线程将会挂起,而执行被启动的线程,知道被启动的线程执行完毕后,当前线程才开始执行。下面我们新建两个继承Thread的类,让其中一个线程在另外一个线程中调用join方法[java] view plain copyclass Thread1 exten原创 2017-11-07 16:42:15 · 300 阅读 · 0 评论 -
最简实例说明wait、notify、notifyAll的使用
最简实例说明wait、notify、notifyAll的使用方法博客分类: java 基础多线程JVMthreadIDEA /*** 转载请注明作者longdick http://longdick.iteye.com**/ wait()、notify()、notifyAll()是三个定义在Object类里的转载 2017-11-07 17:10:51 · 185 阅读 · 0 评论 -
SSO单点登录详解
一、什么是单点登录SSO(Single Sign-On) SSO是一种统一认证和授权机制,指访问同一服务器不同应用中的受保护资源的同一用户,只需要登录一次,即通过一个应用中的安全验证后,再访问其他应用中的受保护资源时,不再需要重新登录验证。二、单点登录解决了什么问题 解决了用户只需要登录一次就可以访问所有相互信任的应用系统,而不用重复登录。原创 2017-10-30 17:47:34 · 532 阅读 · 0 评论 -
15个顶级Java多线程面试题及回答
原文链接 ,原文作者: Javin Paul , 译者:赵峰Java 线程面试问题在任何Java面试当中多线程和并发方面的问题都是必不可少的一部分。如果你想获得任何股票投资银行的前台资讯职位,那么你应该准备很多关于多线程的问题。在投资银行业务中多线程和并发是一个非常受欢迎的话题,特别是电子交易发展方面相关的。他们会问面试者很多令人混淆的Java线程问题。面试官只是想确信面试转载 2017-11-08 10:49:48 · 170 阅读 · 0 评论 -
JAVA多线程和并发基础面试问答
JAVA多线程和并发基础面试问答原文链接 译文连接 作者:Pankaj 译者:郑旭东 校对:方腾飞多线程和并发问题是Java技术面试中面试官比较喜欢问的问题之一。在这里,从面试的角度列出了大部分重要的问题,但是你仍然应该牢固的掌握Java多线程基础知识来对应日后碰到的问题。(校对注:非常赞同这个观点)Java多线程面试问题1. 进程和线程之间有什么不同?转载 2017-11-08 10:51:14 · 192 阅读 · 0 评论 -
生产者/消费者问题Java详解
生产者/消费者问题的多种Java实现方式 实质上,很多后台服务程序并发控制的基本原理都可以归纳为生产者/消费者模式,而这是恰恰是在本科操作系统课堂上老师反复讲解,而我们却视而不见不以为然的。在博文《一种面向作业流(工作流)的轻量级可复用的异步流水开发框架的设计与实现》中将介绍一种生产者/消费者模式的具体应用。生产者消费者问题是研究多线程程序时绕不开的经典问题之一,它描述是有一块缓冲区作原创 2017-11-08 15:03:35 · 276 阅读 · 0 评论 -
maven 详解
只为成功找方法,不为失败找借口!Maven学习总结(一)——Maven入门一、Maven的基本概念 Maven(翻译为"专家","内行")是跨平台的项目管理工具。主要服务于基于Java平台的项目构建,依赖管理和项目信息管理。1.1、项目构建 项目构建过程包括【清理项目】→【编译项目】→【测试项目】→【生成测试报告】→【打包项目】→【部署项目】这几个步骤,原创 2017-10-30 14:31:48 · 228 阅读 · 0 评论 -
diamond 详解
diamond是淘宝内部使用的一个管理持久配置的系统,它的特点是简单、可靠、易用,目前淘宝内部绝大多数系统的配置,由diamond来进行统一管理。diamond为应用系统提供了获取配置的服务,应用不仅可以在启动时从diamond获取相关的配置,而且可以在运行中对配置数据的变化进行感知并获取变化后的配置数据。持久配置是指配置数据会持久化到磁盘和数据库中。diamond的特点是原创 2017-10-31 14:34:12 · 1853 阅读 · 0 评论 -
链表详解
链表是一种数据结构,和数组同级。比如,Java中我们使用的ArrayList,其实现原理是数组。而LinkedList的实现原理就是链表了。链表在进行循环遍历时效率不高,但是插入和删除时优势明显。下面对单向链表做一个介绍。单向链表是一种线性表,实际上是由节点(Node)组成的,一个链表拥有不定数量的节点。其数据在内存中存储是不连续的,它存储的数据分散在内存中,每个结点只能也只有它能知道下一原创 2017-10-19 16:39:15 · 1845 阅读 · 0 评论 -
java集合的几种遍历方式详解
集合类的通用遍历方式, 用迭代器迭代:Iterator it = list.iterator();while(it.hasNext()) { Object obj = it.next();} Map遍历方式: 1、通过获取所有的key按照key来遍历//Set set = map.keySet(); //得到所有key的原创 2017-10-19 15:11:18 · 307 阅读 · 0 评论 -
CollectionUtil详解
集合判断: 例1: 判断集合是否为空:CollectionUtils.isEmpty(null): trueCollectionUtils.isEmpty(new ArrayList()): trueCollectionUtils.isEmpty({a,b}): false例2: 判断集合是否不为空:CollectionUtils.isNotEmpty(null): f转载 2017-10-18 11:31:57 · 5884 阅读 · 0 评论 -
HashMap底层详解
1. HashMap概述: HashMap是基于哈希表的Map接口的非同步实现(Hashtable跟HashMap很像,唯一的区别是Hashtalbe中的方法是线程安全的,也就是同步的)。此实现提供所有可选的映射操作,并允许使用null值和null键。此类不保证映射的顺序,特别是它不保证该顺序恒久不变。2. HashMap的数据结构: 在java编程语言中,最基原创 2017-10-17 20:53:57 · 220 阅读 · 0 评论 -
ArrayList底层详解
Java集合---ArrayList的实现原理目录: 一、 ArrayList概述 二、 ArrayList的实现 1) 私有属性 2) 构造方法 3) 元素存储 4) 元素读取原创 2017-10-17 20:49:12 · 501 阅读 · 0 评论 -
接口 详解
一、基本概念接口(Interface),在JAVA编程语言中是一个抽象类型,是抽象方法的集合。接口通常以interface来声明。一个类通过继承接口的方式,从而来继承接口的抽象方法。如果一个类只由抽象方法和全局常量组成,那么这种情况下不会将其定义为一个抽象类。只会定义为一个接口,所以接口严格的来讲属于一个特殊的类,而这个类里面只有抽象方法和全局常量,就连构造方法也没有。范例原创 2017-10-14 17:00:40 · 247 阅读 · 0 评论 -
diamond 客户端代码详解
publicclass DiamondTestClient { publicstatic DiamondManager manager; publicstatic void main(String[] str) { initDiamondManager(); } private原创 2017-10-31 15:06:46 · 609 阅读 · 0 评论 -
dubbo配置属性详解
dubbo配置指南转至元数据结尾 转至元数据起始Configuration ReferenceConfiguration Relation: SLA配置在此完成!Service Layer AgreementService Layer AgreementApplicationConfi原创 2017-10-27 21:12:41 · 11741 阅读 · 0 评论 -
线程池详解
Java通过Executors提供四种线程池,分别为:newCachedThreadPool创建一个可缓存线程池,如果线程池长度超过处理需要,可灵活回收空闲线程,若无可回收,则新建线程。newFixedThreadPool 创建一个定长线程池,可控制线程最大并发数,超出的线程会在队列中等待。newScheduledThreadPool 创建一个定长线程池,支持定时及周期性任务执行。原创 2017-10-31 20:46:41 · 157 阅读 · 0 评论 -
SpringMVC中关于静态资源拦截的处理
Spring MVC程序中得到静态资源文件css,js,图片文件的路径问题总结作者:文强字体大小: 小 中 大 用 Spring MVC 开发应用程序,对于初学者有一个很头疼的问题,那就是程序数据都已经查询出来了,但界面样式仍然十分丑陋,加载不了 css,js,图片等资源文件。当你在浏览器上直接输入某个css文件的路径时,直接得到404错误,而路原创 2017-10-23 20:59:00 · 292 阅读 · 0 评论 -
自连接 讲的很简单 通俗易懂
2017.11.8 我来到 gome 师兄去了苏宁 被不良企业苏宁因为请假开除 面试七牛云问的问题 师兄属于代码能力很强的 祝师兄早日入职好厂也祝自己早日涨薪,所以每一个问题都喜欢写写,但是我说这属于基础 虽然代码功底弱 但感觉这些东西都懂 不知道程序员之路能走多久。 下面书归正传自连接的实例我们什么时候应该使用自连接呢?我们来看下面的例子。在oracle的s原创 2017-11-08 16:31:52 · 6918 阅读 · 0 评论 -
RoundingMode 几个参数详解
第一版java.math.RoundingMode 几个参数详解java.math.RoundingMode里面有几个参数搞得我有点晕,现以个人理解对其一一进行总结:为了能更好理解,我们可以画一个XY轴RoundingMode.CEILING:取右边最近的整数RoundingMode.DOWN:去掉小数部分取整,也就是正数取左边,负数取右边,相当于向原点原创 2017-10-24 13:58:01 · 21636 阅读 · 0 评论 -
DispatcherServlet 和 ContextLoaderListener 的关系,到底用哪个?
对于contextConfigLocation参数,有2个地方可以配置:1)context-param 是全局性配置2)servlet下的init-param 是局部性配置若以上两处都设置了一个相同的bean配置文件路径,那么该文件内配置的bean会被初始化2次,所以一个配置文件只能选择一种配置位置;项目中使用spring框架有2种方式:1)li原创 2017-10-24 16:12:45 · 259 阅读 · 0 评论 -
logback配置详解
因为,笔者所在公司启动新项目,原先使用的log4j笔者从来没关注过,实在是嫌麻烦,于是,自己琢磨了一天logback,算是成功了。特地来分享一下。logback需要这么几个jar包 建议jar包可以直接去maven的官方仓库搜配置文件,然后收集了,为了架构师做准备。 dependency> groupId>org.logba转载 2017-10-24 17:07:09 · 340 阅读 · 0 评论 -
线程池基础详解(二)
1.为什么需要线程池在面向对象编程中 ,创建和销毁对象是很耗时的,因为创建一个对象要获取内存资源或者其他更多资源.所以在日常编程中才会有意的避免过多的创建并不必要的对象.线程的创建和销毁也是同样,而且相比于普通的对象更为消耗资源.线程池技术的引入,就是为了解决这一问题.1.1 线程池简介线程池是指在初始化一个多线程应用程序过程中创建的一个线程集合,线程池在任务未到来之前,会创建一定数量的线原创 2017-11-01 21:07:21 · 176 阅读 · 0 评论 -
线程池原理解析详解(三)
在前面的文章中,我们使用线程的时候就去创建一个线程,这样实现起来非常简便,但是就会有一个问题: 如果并发的线程数量很多,并且每个线程都是执行一个时间很短的任务就结束了,这样频繁创建线程就会大大降低系统的效率,因为频繁创建线程和销毁线程需要时间。 那么有没有一种办法使得线程可以复用,就是执行完一个任务,并不被销毁,而是可以继续执行其他的任务? 在Java中可以通过线程池原创 2017-11-01 21:09:40 · 167 阅读 · 0 评论 -
JDBC 数据库连接池(DBCP、C3P0) 详解
一、JDBC复习1.1、注册驱动1.2、获取连接1.3、获取执行sql对象,PreparedStatement对象 1.4、获取结果集对象1.5、处理结果集二、JDBC的CURD操作2.1、查询所有记录读取(Retrieve)2.2、增加操作(创建Create) 2.3、更新操作 (Update)2.4、删除操作(delete)三、数据库连接池3.1、连接池概述3转载 2017-11-01 22:55:27 · 1470 阅读 · 0 评论 -
this关键字作用详解
一、this关键字主要有三个应用: (1)this调用本类中的属性,也就是类中的成员变量; (2)this调用本类中的其他方法; (3)this调用本类中的其他构造方法,调用时要放在构造方法的首行。Public Class Student { String name; //定义一个成员变量name private void SetName(String name) { //定义一个参原创 2017-11-10 17:09:56 · 708 阅读 · 0 评论 -
方法重写重载详解
方法重载:就是在同一个类中,方法的名字相同,但参数个数、参数的类型或返回值类型不同!方法重写:它是指子类和父类的关系,子类重写了父类的方法,但方法名、参数类型、参数个数必须相同!关于方法重写的一些特性:1.发生方法重写的两个方法返回值、方法名、参数列表必须完全一致(子类重写父类的方法)2.子类抛出的异常下不能超过父类相应方法抛出的异常(子类异常不能大原创 2017-11-10 17:18:42 · 10992 阅读 · 0 评论 -
spring依赖注入
Spring 依赖注入方式详解阅读目录1.Set注入2.构造器注入3.静态工厂的方法注入4.实例工厂的方法注入 平常的Java开发中,程序员在某个类中需要依赖其它类的方法。 通常是new一个依赖类再调用类实例的方法,这种开发存在的问题是new的类实例不好统一管理。 Spring提出了依赖注入的思想,即依赖类不由程序员实例化,原创 2017-10-25 11:04:05 · 351 阅读 · 0 评论 -
springMVC详解
Spring Web MVC是一种基于Java的实现了Web MVC设计模式的请求驱动类型的轻量级Web框架,即使用了MVC架构模式的思想,将web层进行职责解耦,基于请求驱动指的就是使用请求-响应模型,框架的目的就是帮助我们简化开发,Spring Web MVC也是要简化我们日常Web开发的。 与之相反的是基于组件的、事件驱动的Web框架,如Tapestry、JSF等,在此就不介绍了。原创 2017-10-25 13:54:49 · 275 阅读 · 0 评论 -
单例模式五种写法 懒汉、饿汉、双重检验锁、静态内部类、枚举。
转 https://biezhi.me/article/how-to-correctly-write-singleton-pattern.html单例模式算是设计模式中最容易理解,也是最容易手写代码的模式了吧。但是其中的坑却不少,所以也常作为面试题来考。本文主要对几种单例写法的整理,并分析其优缺点。很多都是一些老生常谈的问题,但如果你不知道如何创建一个线程安全的单例,不知道什么是双检锁,那原创 2017-10-25 15:35:58 · 276 阅读 · 0 评论 -
线程安全,有状态,无状态的对象
线程安全,有状态,无状态的对象2013年10月12日 ⁄ 综合 ⁄ 共 2694字 ⁄ 字号 小 中 大 ⁄ 评论关闭线程安全 如果你的代码所在的进程中有多个线程在同时运行,而这些线程可能会同时运行这段代码。如果每次运行结果和单线程运行的结果是一样的,而且其他的变量的值也和预期的是一样的,就是线程安全的。 或者说:一个类或者程序所提供的接原创 2017-10-25 16:05:40 · 216 阅读 · 0 评论 -
静态方法详解 静态类 静态属性的对比和具体应用
最近做一个公共工具类时候想到的:A extends B B b=new A() b不能调用B中的静态方法吗答案是可以 但是IDE不会自动提示你方法因为这是不科学的 静态方法就用类名来调用,静态方法是在类加载的时候就放入内存中 非静态是在类初始化的时候进入内存的。 静态变量和静态方法都原创 2017-11-02 17:25:57 · 415 阅读 · 0 评论 -
Collection集合的三种初始化方法
(一)java容器可以分为两大类1)Collection其中包括List,Set,Queue 2)Map(二)Arrays.asList()方法:接受一个数组或一个逗号分隔的元素列表,并将其转化为Lists对象(三)1:构造器方法,Collection的构造器接受另外一个Collection,用它来进行初始化比如:Colle原创 2017-10-26 11:03:30 · 14659 阅读 · 0 评论 -
String、StringBuffer与StringBuilder之间区别
周末任务:String中的所有方法练习一遍.... *A-Z 65-90 *a-z 97-122 String、StringBuffer与StringBuilder之间区别 最近学习到StringBuffer,心中有好些疑问,搜索了一些关于String,StringBuffer,StringBuilder的东西,现在整理一下。关于这三个类在字符串处理中原创 2017-10-26 11:49:54 · 144 阅读 · 0 评论 -
【Java】【TIJ】用import改变行为,实现条件编译功能
1、简单介绍 Java没有C的条件编译功能,但是条件编译在调试过程中还是非常重要的,这个对Java来说也是一样。调试功能在开发过程中是开启的,但是在发布过程中应该是关闭的。这里,可以通过修改被导入的package的方法来实现这一目的,修改的方法是将你程序中用到的代码从调试版改为发布版。这一技术可以适用在任何种类的条件代码。下面的例子是: 创建两个包原创 2017-11-17 13:45:30 · 640 阅读 · 0 评论 -
Cookie和Session详解
Cookie和Session详解会话(Session)跟踪是Web程序中常用的技术,用来跟踪用户的整个会话。常用的会话跟踪技术是Cookie与Session。Cookie通过在客户端记录信息确定用户身份,Session通过在服务器端记录信息确定用户身份。本章将系统地讲述Cookie与Session机制,并比较说明什么时候不能用Cookie,什么时候不能用Session。原创 2017-10-26 15:45:38 · 237 阅读 · 0 评论