
Java
文章平均质量分 63
JDK 常见问题记录&源码解析
涛濤
Hope for the best, prepare for the worst!
展开
-
HashMap 提高篇
HashMap也是我们使用非常多的Collection,它是基于哈希表的 Map 接口的实现,以key-value的形式存在。在HashMap中,key-value总是会当做一个整体来处理,系统会根据hash算法来来计算key-value的存储位置,我们总是可以通过key快速地存、取value。下面就来分析HashMap的存取。一、定义HashMap实现了Map接口,继承A转载 2017-02-24 08:54:22 · 336 阅读 · 0 评论 -
Java程序员之技术进阶之路
什么都不用说,图是最生动形象的转载 2017-03-20 17:10:36 · 2741 阅读 · 1 评论 -
Java 内存模型及GC原理
一个优秀Java程序员,必须了解Java内存模型、GC工作原理,以及如何优化GC的性能、与GC进行有限的交互,有一些应用程序对性能要求较高,例如嵌入式系统、实时系统等,只有全面提升内存的管理效率,才能提高整个应用程序的性能。本文将从JVM内存模型、GC工作原理,以及GC的几个关键问题进行探讨,从GC角度提高Java程序的性能。一、Java内存模型按照官方的说转载 2017-03-07 14:42:04 · 290 阅读 · 0 评论 -
Cookie与Session的区别-总结很好的文章
本文分别对Cookie与Session做一个介绍和总结,并分别对两个知识点进行对比分析,让大家对Cookie和Session有一个更深入的了解,并对自己的开发工作中灵活运用带来启示。cookie机制Cookies是服务器在本地机器上存储的小段文本并随每一个请求发送至同一个服务器。IETF RFC 2965 HTTP State Management Me转载 2017-05-03 09:50:18 · 344 阅读 · 0 评论 -
java调用webservice服务
java调用webservice服务代码笔记:package com.ws.client;import org.apache.commons.httpclient.HttpClient;import org.apache.commons.httpclient.methods.InputStreamRequestEntity;import org.apache.commons.httpc原创 2017-05-25 16:11:30 · 560 阅读 · 0 评论 -
IDEA生成API接口文档
IDEA生成API接口文档第一步:第二步:第三步:最后一步:点击OK就over了!完美over!!原创 2017-05-26 09:23:13 · 23997 阅读 · 1 评论 -
UML常用图的几种关系的总结
在UML的类图中,常见的有以下几种关系: 泛化(Generalization), 实现(Realization), 关联(Association), 聚合(Aggregation), 组合(Composition), 依赖(Dependency)1. 泛化(Generalization)【泛化关系】:是一种继承关系, 表示一般与特殊的关系, 它指定了子转载 2017-06-02 16:00:05 · 562 阅读 · 0 评论 -
ThreadLocal工作原理
在这篇文章中,总结了一下面试过程中遇到的关于ThreadLocal的内容。总体上说,这样回答,面试算是过得去了。但是,这样的回答,明显仅仅是背会了答案,而没有去研究ThreadLocal的最根本的实现原理。一共有两个问题。1、每个线程的变量副本是存储在哪里的?2、变量副本是怎么从共享的那个变量赋值出来的?源码中的threadlocal的初始值是什么时机设置的?===========转载 2017-07-14 08:47:01 · 105 阅读 · 0 评论 -
HashMap在Java1.7与1.8中的区别
JDK1.7中使用一个Entry数组来存储数据,用key的hashcode取模来决定key会被放到数组里的位置,如果hashcode相同,或者hashcode取模后的结果相同(hash collision),那么这些key会被定位到Entry数组的同一个格子里,这些key会形成一个链表。在hashcode特别差的情况下,比方说所有key的hashcode都相同,这个链表可能会很长,转载 2017-07-17 10:00:53 · 1497 阅读 · 0 评论 -
IntelliJ IDEA 常用快捷键
实用快捷键:Ctrl+/ 或 Ctrl+Shift+/ 注释(// 或者/*...*/ )Ctrl+D 复制行Ctrl+X 删除行快速修复 alt+enter (modify/cast)代码提示 alt+/ctr+G 定位某一行Shift+F6 重构-重命名Ctrl+R 替换文本Ctrl+F 查找文本Ctrl+E 最近打开的文件Ctrl+J原创 2017-11-21 10:58:35 · 256 阅读 · 0 评论 -
Executors创建线程池的弊端
Executors创建线程池的弊端线程池不允许使用Executors去创建,而是通过ThreadPoolExecutor的方式,这样的处理方式让写的同学更加明确线程池的运行规则,规避资源耗尽的风险.说明:Executors的各个方法的弊端:1)newFixedThreadPool和newSingleThreadExecutor:主要问题是堆积的请求处理队列可能会耗费非常大的原创 2017-12-01 13:44:42 · 5052 阅读 · 0 评论 -
Java并发编程
Java并发编程关注并发网:http://ifeve.com原创 2017-12-01 15:01:25 · 233 阅读 · 0 评论 -
Java中的线程池种类
1. newSingleThreadExecutor创建方式:ExecutorService pool = Executors.newSingleThreadExecutor();一个单线程的线程池。这个线程池只有一个线程在工作,也就是相当于单线程串行执行所有任务。如果这个唯一的线程因为异常结束,那么会有一个新的线程来替代它。此线程池保证所有任务的执行顺序按照任务的提交顺序执行。使用方式:impo...转载 2018-05-25 14:40:25 · 4201 阅读 · 2 评论 -
java HashSet实现原理
1. HashSet概述: HashSet实现Set接口,由哈希表(实际上是一个HashMap实例)支持。它不保证set 的迭代顺序;特别是它不保证该顺序恒久不变。此类允许使用null元素。2. HashSet的实现: 对于HashSet而言,它是基于HashMap实现的,HashSet底层使用HashMap来保存所有元素,因此HashSet 的实现比较简单,相关HashSet...原创 2018-05-30 08:57:43 · 5480 阅读 · 1 评论 -
用栈实现队列
1.栈的特点:先进后出2.队列的特点:先进先出3.此时我们用两个栈来实现队列,那么我们让其中一个栈作为队列的入口,负责插入新元素,另一个栈作为队列的出口,负责移出老元素.4.队列的主要功能无非就两个:出队/入队;在模拟入操作是,我们把新元素压如栈A中,让元素1入队:让元素2入队:让元素3入队:这时候我们需要让元素1出队,操作如下:让栈A中...原创 2018-10-22 11:27:53 · 320 阅读 · 0 评论 -
一位10年Java工作经验的架构师聊Java和工作经验
黄勇( 博客),从事近十年的 JavaEE 应用开发工作,现任阿里巴巴公司系统架构师。对分布式服务架构与大数据技术有深入研究,具有丰富的 B/S 架构开发经验与项目实战经验,擅长敏捷开发模式。国内开源软件推动者之一,Smart Framework 开源框架创始人。热爱技术交流,乐于分享自己的工作经验。著有《架构探险——从零开始写Java Web框架》一书。我的十年技术之路优快云:转载 2017-03-20 15:28:47 · 5861 阅读 · 0 评论 -
JAVA中线程同步的方法(7种)汇总
同步的方法:一、同步方法 即有synchronized关键字修饰的方法。 由于java的每个对象都有一个内置锁,当用此关键字修饰方法时, 内置锁会保护整个方法。在调用该方法前,需要获得内置锁,否则就处于阻塞状态。注: synchronized关键字也可以修饰静态方法,此时如果调用该静态方法,将会锁住整个类。 二、同步代码块 即有synchroni转载 2017-03-02 10:45:18 · 395 阅读 · 0 评论 -
JDK1.5,1.6,1.7,1.8新增特性
JDK1.5,1.6,1.7,1.8新增特性JDK1.5新特性1.静态导入(import static)import语句可以导入一个类或是某个包中的所有类。import static 语句可以导入一个类中的某个静态方法或是所有静态方法。例如:Math类提供了很多于数学运算的静态方法,通常情况下我们是以Math.abs();这样的方式来进行调用函数的。转载 2017-02-22 10:27:28 · 3540 阅读 · 0 评论 -
进程与线程的区别
从一定意义上讲,进程就是一个应用程序在处理机上的一次执行过程,它是一个动态的概念,而线程是进程中的一部分,进程包含多个线程在运行。1.进程是一个具有独立功能的程序关于某个数据集合的一次运行活动。它可以申请和拥有系统资源,是一个动态的概念,是一个活动的实体。它不只是程序的代码,还包括当前的活动,通过程序计数器的值和处理寄存器的内容来表示。2.进程是一个“执行中的程序”原创 2017-02-21 13:57:46 · 100 阅读 · 0 评论 -
Java反射
好久都没有回顾java反射了,在实际编程中很少会直接使用反射去实现某些功能,但是我们常用的开发框架里面都有反射技术,可以说反射技术是无处不在!!一,先看一下反射的概念: 主要是指程序可以访问,检测和修改它本身状态或行为的一种能力,并能根据自身行为的状态和结果,调整或修改应用所描述行为的状态和相关的语义。 反射是Java中一种强大的工具,原创 2017-02-20 13:53:19 · 546 阅读 · 0 评论 -
java动态代理(JDK和cglib)
AVA的动态代理 代理模式 代理模式是常用的java设计模式,他的特征是代理类与委托类有同样的接口,代理类主要负责为委托类预处理消息、过滤消息、把消息转发给委托类,以及事后处理消息等。代理类与委托类之间通常会存在关联关系,一个代理类的对象与一个委托类的对象关联,代理类的对象本身并不真正实现服务,而是通过调用委托类的对象的相关方法,来提供特定的服务。 按照代理的创建时期,代理类可以分为两转载 2017-02-20 16:20:48 · 114 阅读 · 0 评论 -
深入分析 java注解
深入分析 java注解。让你快走一步!java元注解元注解作用是负责注解其他注解,java5.0定义了四个标准的元注解。包括:@Target、@Documented、@Retention、@Inherit。@Target注解:它用于描述注解可以修饰的类型。可以修饰的类型为:TYPE(类、接口、枚举)、FIELD、METHOD(方法声明)、PARAMETER(参数转载 2017-02-19 10:17:44 · 290 阅读 · 0 评论 -
Java集合面试问题
40个Java集合面试问题和答案。1.Java集合框架是什么?说出一些集合框架的优点?每种编程语言中都有集合,最初的Java版本包含几种集合类:Vector、Stack、HashTable和Array。随着集合的广泛使用,Java1.2提出了囊括所有集合接口、实现和算法的集合框架。在保证线程安全的情况下使用泛型和并发集合类,Java已经经历了很久。它还包括在Java并发转载 2017-02-19 10:14:35 · 1518 阅读 · 0 评论 -
40个Java集合面试问题和答案
Java集合框架为Java编程语言的基础,也是Java面试中很重要的一个知识点。这里,我列出了一些关于Java集合的重要问题和答案。1.Java集合框架是什么?说出一些集合框架的优点?每种编程语言中都有集合,最初的Java版本包含几种集合类:Vector、Stack、HashTable和Array。随着集合的广泛使用,Java1.2提出了囊括所有集合接口、实现和算法的集转载 2017-02-16 10:02:21 · 338 阅读 · 0 评论 -
一致性哈希算法(consistent hashing)
转载请说明出处:http://blog.youkuaiyun.com/cywosp/article/details/23397179 一致性哈希算法在1997年由麻省理工学院提出的一种分布式哈希(DHT)实现算法,设计目标是为了解决因特网中的热点(Hot spot)问题,初衷和CARP十分类似。一致性哈希修正了CARP使用的简 单哈希算法带来的问题,使得分布式哈希(DHT)可以在P2P环境中真正得到转载 2017-02-15 15:36:40 · 289 阅读 · 0 评论 -
成为一个Java的架构师要学习哪些知识?
既然java架构师,首先你要是一个高级java攻城尸,熟练使用各种框架,并知道它们实现的原理。jvm虚拟机原理、调优,懂得jvm能让你写出性能更好的代码;池技术,什么对象池,连接池,线程池...:;java反射技术,写框架必备的技术,但是有严重的性能问题,替代方案java字节码技术;nio,没什么好说的,值得注意的是"直接内存"的特点,使用场景;java多线程同步异步;java各种集合对象的实现原转载 2017-02-15 10:44:30 · 4233 阅读 · 9 评论 -
Log4J记录日志到指定文件
1.有时候需要用log4记录某些指定日志到指定文件中以便于分析log4j.xml配置如下:xml version="1.0" encoding="UTF-8"?>status="off" monitorInterval="1800"> name="LOG_HOME">/data/wxApplogs name="BACKUP原创 2017-02-15 10:25:23 · 626 阅读 · 0 评论 -
Java中生成随机数Random、ThreadLocalRandom、SecureRandom、Math.random()
我们来说说java常见的生成随机数的几种方式:Random,ThreadLocalRandom,SecureRandom;其实产生随机数有很多种方式但我们常见的就这几种,如果需要详细了解这个三个类,可以查看JAVA API.1.先说说我们最常用的RandomRandom random = new Random();int a = random.nextInt(5);//随机生成0~4中间原创 2017-02-14 10:39:30 · 5448 阅读 · 0 评论 -
Jersey发布图片到另一台图片服务器
另一台服务器 http://localhost:8088/image-web/upload/qwqwqwq.jpg 1:找开按钮是什么事件 2:异步提交ajax是怎么把图片上传到后台服务器的 3:配置Springmvc支持上传图片功能 4:搭建一个图片服务器 5:发送此图片到另一台服务器 6:将生成的http://localhost:8原创 2016-08-26 15:14:44 · 799 阅读 · 0 评论 -
Eclipse将项目发布到Tomcat的根目录下
Eclipse将项目发布到Tomcat的根目录下原创 2016-08-23 09:45:20 · 1102 阅读 · 0 评论 -
WindowsServer2012 搭建多台Tomcat
1.配置JDK1.新建系统变量 JAVA_HOME:C:\Program Files\Java\jdk1.8.0_25 用%JAVA_HOME%就可以取代:C:\Program Files\Java\jdk1.8.0_25这一部分2.新建系统变量 CLASSPATH:.\;%JAVA_HOME%\lib\tools.jar;%JAVA_HOME%\lib\dt原创 2016-06-09 22:32:38 · 3502 阅读 · 0 评论 -
Java常用运算符(&&,&,||,|,>>>等)计算和二进制转换
此处主要是用于记录一下Java常用运算符计算方式,和十进制数与二进制数相互转换的方式,由于这些在日常开发中使用的比较少,时而会忘记,所有记录一下方便以后有迹可循.此处直接上源码,相关说明写在了代码doc注释中:/** * @author leitao. * @category * @time: 2019/9/16 0016-9:44 * @version: 1...原创 2019-09-16 10:43:35 · 555 阅读 · 0 评论