IT-编程语言-Java
文章平均质量分 85
LarryHai6
一直致力于开源技术和软件架构实践,追求业务和技术的最佳实践
| 个人的专业领域包括 大型分布式系统/应用架构设计 云原生架构设计 微服务架构设计 Agile和DevOps最佳实践 DDD设计方法论 数据建模与分析 | 联系方式: 邮件: liuhaidl9@163.com
展开
-
Java集合系列主题:数据结构堆的定义
目录基本概念样例代码实现基本概念堆是一种基本的数据结构。在这里我用数组来形容,在一个二叉堆的数组中,每一个元素都要保证大于等于另外两个特定位置的元素。同时相应的,这些元素又要大于等于另外两个相应位置的元素,整个数据结构以此类推。如果我们将整个数据结构画成树状结构,就能够清晰地看出整个结构的样子。图片中显示的是最大堆和最小堆,两者的原理近似,这里我们讨论最大堆的实现。当一颗二叉树的每个结点都大于等于它的两个子节点时,它被称为堆有序。相应地,在堆有序的二叉树中,每个结点都..原创 2021-04-25 21:39:16 · 134 阅读 · 0 评论 -
Java集合系列主题:LinkedList源码详解
本文转自:github 作者 JavaGuide目录LinkedList简介LinkedList内部结构分析LinkedList源码分析构造方法add方法根据位置取数据的方法根据对象得到索引的方法检查链表是否包含某对象的方法:删除方法LinkedList类常用方法测试LinkedList简介LinkedList是一个实现了List接口和Deque接口的双端链表。 LinkedList底层的链表结构使它支持高效的插入和删除操作,另外它实现了Deque接口,使转载 2021-04-25 21:10:56 · 159 阅读 · 0 评论 -
Java集合系列主题:ArrayList核心知识详细解读
ArrayList 简介ArrayList的底层是数组队列,相当于动态数组。与 Java 中的数组相比,它的容量能动态增长。在添加大量元素前,应用程序可以使用ensureCapacity操作来增加ArrayList实例的容量。这可以减少递增式再分配的数量。ArrayList继承于AbstractList,实现了List,RandomAccess,Cloneable,java.io.Serializable这些接口。public class ArrayList<E>...转载 2021-04-25 20:50:05 · 125 阅读 · 0 评论 -
Java集合系列主题:Set 基础详解
本文转自:简书 作者 贾博岩Set介绍Set继承于Collection接口,是一个不允许出现重复元素,并且无序的集合,主要有HashSet和TreeSet两大实现类。在判断重复元素的时候,Set集合会调用hashCode()和equal()方法来实现。HashSet是哈希表结构,主要利用HashMap的key来存储元素,计算插入元素的hashCode来获取元素在集合中的位置;TreeSet是红黑树结构,每一个元素都是树中的一个节点,插入的元素都会进行排序;Set集合框架结构:转载 2021-04-25 20:16:13 · 156 阅读 · 0 评论 -
Java集合系列主题:Queue 队列
本文转自:拭心目录什么是队列单队列循环队列Java 集合框架中的队列 QueueQueue 方法介绍其他什么是队列队列是数据结构中比较重要的一种类型,它支持 FIFO,尾部添加、头部删除(先进队列的元素先出队列),跟我们生活中的排队类似。队列有两种:单队列 循环队列单队列单队列就是常见的队列, 每次添加元素时,都是添加到队尾:以数组实现的队列为例,初始时队列长度固定为 4,font 和 rear 均为 0:每添加一个元素,rear 后移一位。当添加转载 2021-04-25 19:38:48 · 179 阅读 · 0 评论 -
How to convert Java Key Store file to pem/key for nginx
1. Convert our ".jks" file to ".p12" (PKCS12 key store format): keytool -importkeystore -srckeystore oldkeystore.jks -destkeystore newkeystore.p12 -deststoretype PKCS12 1.1. List new keystore转载 2016-10-12 23:17:44 · 453 阅读 · 0 评论 -
java 利用反射机制,获取实体所有属性和方法,并对属性赋值
一个普通的实体Person:private int id;private String name;private Date createdTime;...//其它字段// get set方法...............现在需要把通过webService传过来的实体Person里面的所有字段的null值,换成""实现思路:1.获取实体的所有字段,遍历转载 2016-09-02 01:24:20 · 9477 阅读 · 0 评论 -
java获取WEB-INF目录绝对路径
JSP WEB工程在不用servlet的情况下如何在普通的java类中获取WEB-INF的绝对路径呢?如下图所示,我在WEB-INF目录下面放了一个文件server.xml,我需要在普通的java类中获取server.xml的绝对路径,怎样才能获取到呢?-------------------------------------------------------转载 2016-08-06 01:38:19 · 6565 阅读 · 0 评论 -
AsyncHttp+gson解析
http://www.open-open.com/lib/view/open1437028262990.html网上其实也有很多类似的这种框架 不过还是觉得自己写的用着比较方便,(ps:自己的总是最好的 ^_^)闲下来整理出来了自己之前用过的框架 拿出来封装了一下。也写个记录,省的以后忘了。本框架利用的是Async-Http.jar+gson.jar进行二次封转载 2016-07-08 22:13:17 · 378 阅读 · 0 评论 -
HttpClient+Gson解析中国天气网的天气预报信息
package com.test;import java.io.BufferedReader;import java.io.File;import java.io.FileReader;import java.io.IOException;import java.util.ArrayList;import java.util.HashMap;import java.util.Ite转载 2016-07-08 22:11:12 · 2207 阅读 · 0 评论 -
Google Gson的使用方法,实现Json结构的相互转换
在Java开发中,有时需要保存一个数据结构成字符串,可能你会考虑用Json,但是当Json字符串转换成Java对象时,转换成的是JsonObject,并不是你想要的Class类型的对象,操作起来就很不是愉悦,下面说的就可以解决了这种问题。首先,需要把Google的Gson的Jar包导入到项目中,这个导入包的简单步骤就不展示了,Gson的下载链接:http://download.转载 2016-07-07 13:43:05 · 421 阅读 · 0 评论 -
HttpPost发送Json
.public static JSONObject post(String url,JSONObject json){ 2. HttpClient client = new DefaultHttpClient(); 3. HttpPost post = new HttpPost(url); 4. JSONObject resp转载 2016-07-07 13:03:59 · 620 阅读 · 1 评论 -
OkHttp使用教程
Android系统提供了两种HTTP通信类,HttpURLConnection和HttpClient。关于HttpURLConnection和HttpClient的选择>>官方博客尽管Google在大部分安卓版本中推荐使用HttpURLConnection,但是这个类相比HttpClient实在是太难用,太弱爆了。OkHttp是一个相对成熟的解决方案,据说Android4.4的源码中可转载 2016-07-10 11:22:28 · 429 阅读 · 0 评论 -
Junit4中怎样随心所欲的执行Test
前言:在Junit4中怎样随心所欲的执行Test(一) 一文中,使用的是junit4.4,想要有选择性的执行TestCase中的Test,是需要自己扩展junit4.4的API的。junit4.8的版本中,加入了一个Runner:Categories,可以实现只跑特定分类的Test。现在通过代码举例来比较两个版本中批量执行Test的差别.public class TestOne {转载 2016-11-15 00:00:06 · 572 阅读 · 0 评论 -
Eclipse+Maven创建webapp项目
Eclipse+Maven创建webapp项目1、开启eclipse,右键new——》other,如下图找到maven project2、选择maven project,显示创建maven项目的窗口,勾选如图所示,Create a simple project3、输入maven项目的基本信息,如下图所示:4、完成maven项目的创建,生成相应的maven项目结果,如下所转载 2016-12-28 11:55:14 · 372 阅读 · 0 评论 -
Maven项目的目录结构
刚接触Maven没多长时间,实习时在的小公司很不规范,所有web项目都是dynamic web project搭建,没有用到项目构建,管理工具,导致了非常多的重复工作与低效。先来看看Maven的功能下面是来自于百度百科:Maven是基于项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的软件项目管理工具。Maven 除了以程序构建能力为特色之外,还提供高级项目管理工具。转载 2016-12-28 12:06:09 · 9175 阅读 · 0 评论 -
httpClient设置忽略SSL(trust all)
第一个方法自测有效,其余方法摘自网上HttpHost proxy = new HttpHost("100.67.76.9",10003);CloseableHttpClient httpClient = HttpClients.custom() .setProxy(proxy) .setHostnameVerifier(new AllowAllHostnam...转载 2018-07-26 10:55:29 · 3815 阅读 · 0 评论 -
115道Java经典面试题(面中率最高、最全)
Java是一个支持并发、基于类和面向对象的计算机编程语言。下面列出了面向对象软件开发的优点:代码开发模块化,更易维护和修改。代码复用。增强代码的可靠性和灵活性。增加代码的可理解性。 面向对象编程有很多重要的特性,比如:封装,继承,多态和抽象。下面的章节我们会逐个分析这些特性。 封装 封装给对象提供了隐藏内部特性和行为的能力。对象提供一些能被其他对象访问的方法来改变它内部的数据。在Java当中,有3...转载 2018-06-21 07:52:49 · 1110 阅读 · 0 评论 -
如何快速定位JVM中消耗CPU最多的线程?
在日常 Java 的开发中,性能调优肯定是很多人不能绕开的一个环节。而其中最简单,也是最基础的一个问题就是如何定位消耗 CPU 最多的线程。这篇文章中你假笨以一个简单的 Test 例子为蓝本,给各位总结了分析这类问题的常用『套路』。具体如下。这个例子里新创建了 11 个线程,其中 10 个线程没干什么事,主要是 sleep,另外有一个线程在循环里一直跑着,可以想象这个线程是这个进程里最耗 CPU ...转载 2018-05-17 10:09:49 · 406 阅读 · 0 评论 -
Linux如何查看JDK的安装路径
如何在一台Linux服务器上查找JDK的安装路径呢? 有那些方法可以查找定位JDK的安装路径?是否有一些局限性呢? 下面总结了一下如何查找JDK安装路径的方法. 1:echo $JAVA_HOME使用$JAVA_HOME的话能定位JDK的安装路径的前提是配置了环境变量$JAVA_HOME,否则如下所示,根本定位不到JDK的安装路径[root@localhost ~]转载 2017-11-28 22:20:28 · 240 阅读 · 0 评论 -
Developing Transactional Microservices Using Aggregates, Event Sourcing and CQRS - Part 1
https://www.infoq.com/articles/microservices-aggregates-events-cqrs-part-1-richardsonKey takeawaysThe Microservice architecture functionally decomposes an application into services, each of wh转载 2017-10-19 17:11:24 · 474 阅读 · 0 评论 -
MAC JDK默认安装路径 JAVA路径
打开终端,执行 /usr/libexec/java_home -VMacBook-Air:~ eng$ /usr/libexec/java_home -VMatching Java Virtual Machines (4): 1.8.0_101, x86_64: "javaSE 8" /Library/Java/JavaVirtualMa转载 2017-07-04 18:54:41 · 9642 阅读 · 0 评论 -
Spring Boot 属性配置和使用
Spring Boot 属性配置和使用spring Boot 允许通过外部配置让你在不同的环境使用同一应用程序的代码,简单说就是可以通过配置文件来注入属性或者修改默认的配置。Spring Boot 系列Spring Boot 入门Spring Boot 属性配置和使用Spring Boot 集成MyBatisSpring Boot 静态资源处理S转载 2017-04-05 00:00:27 · 593 阅读 · 0 评论 -
OpenJDK和JDK区别
使用过LINUX的人都应该知道,在大多数LINUX发行版本里,内置或者通过软件源安装JDK的话,都是安装的openjdk,那么到底什么是openjdk,它与sun jdk有什么关系和区别呢?历史上的原因是,openjdk是jdk的开放原始码版本,以GPL协议的形式放出。在JDK7的时候,openjdk已经成为jdk7的主干开发,sun jdk7是在openjdk7的基础上发布的,其大部转载 2017-01-23 15:06:36 · 532 阅读 · 0 评论 -
【JUnit】BeforeClass、AfterClass、Before与After示例
一、初始化标注在老Junit4提供了setUp()和tearDown(),在每个测试函数调用之前/后都会调用。@Before: Method annotated with @Before executes before every test.@After: Method annotated with @After executes after every转载 2016-05-31 22:49:31 · 708 阅读 · 0 评论 -
HttpClient中头部Header的使用
http://blog.csdn.net/blue_jjw/article/details/8768624版权声明:本文为博主原创文章,未经博主允许不得转载。今天看了几个使用HttpClient设置头部信息的帖子,发现使用的Header都是commons-httpclient包中的:[java] view plain copy转载 2016-04-11 19:02:48 · 5116 阅读 · 1 评论 -
JDBC驱动类型
java jdbc驱动的四种类型请问具体都是什么意思1、jdbc-odbc桥2、本地API部分java驱动3、网络协议完全java驱动4、本地协议完全java驱动问题一:在这四种驱动中是否都需要设置数据源?问题二:这四种驱动都是什么意思?请用下列代码为例各举一例将这四种驱动都用上(数据库就sqlserver2000)Class转载 2015-11-19 19:20:46 · 750 阅读 · 0 评论 -
java中volatile关键字的含义
在java线程并发处理中,有一个关键字volatile的使用目前存在很大的混淆,以为使用这个关键字,在进行多线程并发处理的时候就可以万事大吉。Java语言是支持多线程的,为了解决线程并发的问题,在语言内部引入了 同步块 和 volatile 关键字机制。 synchronized 同步块大家都比较熟悉,通过 synchronized 关键字来实现,所有加上synch转载 2015-08-27 12:09:27 · 575 阅读 · 0 评论 -
浅析Java中的final关键字
浅析Java中的final关键字 谈到final关键字,想必很多人都不陌生,在使用匿名内部类的时候可能会经常用到final关键字。另外,Java中的String类就是一个final类,那么今天我们就来了解final这个关键字的用法。下面是本文的目录大纲: 一.final关键字的基本用法 二.深入理解final关键字 若有不正之处,请多多谅解并欢迎指正。 请尊重作者劳动转载 2015-08-27 20:05:38 · 414 阅读 · 0 评论 -
Filter及FilterChain的使用详解
一、Filter的介绍及使用什么是过滤器?与Servlet相似,过滤器是一些web应用程序组件,可以绑定到一个web应用程序中。但是与其他web应用程序组件不同的是,过滤器是"链"在容器的处理过程中的。这就意味着它们会在servlet处理器之前访问一个进入的请求,并且在外发响应信息返回到客户前访问这些响应信息。这种访问使得过滤器可以检查并修改请求和响应的内容。过滤器适用于那些地方?转载 2015-07-09 20:34:01 · 407 阅读 · 0 评论 -
java 1.5和1.6中的新特性
JDK5新特性(与1.4相比)【转】1 循环for (type variable : array){ body}for (type variable : arrayList){body}而1.4必须是:for (int i = 0; i for (int i = 0; i 2 泛型以ArrayList为例,包括创建一个容器对象和取得容器内对象操作:1.5 Arr转载 2015-06-23 22:09:18 · 1563 阅读 · 0 评论 -
Java 自动装箱与拆箱(Autoboxing and unboxing)
什么是自动装箱拆箱基本数据类型的自动装箱(autoboxing)、拆箱(unboxing)是自J2SE 5.0开始提供的功能。 一般我们要创建一个类的对象实例的时候,我们会这样: Class a = new Class(parameter); 当我们创建一个Integer对象时,却可以这样: Integer i = 100; (注意:不是 int i =转载 2015-06-23 22:21:33 · 531 阅读 · 0 评论 -
java.util.concurrent 用法实例详解
编写多线程的程序一直都是一件比较麻烦的事情,要考虑很多事情,处理不好还会出很多意想不到的麻烦。加上现在很多开发者接触到的项目都是打着企业级旗号的B/S项目,大多数人都很少涉及多线程,这又为本文的主角增加了一份神秘感。 讲到Java多线程,大多数人脑海中跳出来的是Thread、Runnable、synchronized……这些是最基本的东西,虽然已经足够强大,但想要用好还真不容易。从转载 2015-06-19 22:35:47 · 1343 阅读 · 0 评论 -
java多线程学习-java.util.concurrent详解(四) BlockingQueue
自:http://janeky.iteye.com/blog/7706717.BlockingQueue “支持两个附加操作的 Queue,这两个操作是:获取元素时等待队列变为非空,以及存储元素时等待空间变得可用。“ 这里我们主要讨论BlockingQueue的最典型实现:LinkedBlockingQueue 和ArrayBlockingQueue。两者的不同是底转载 2015-06-19 22:47:09 · 552 阅读 · 0 评论 -
java.util.concurrent包API学习笔记
http://heipark.iteye.com/blog/1156011newFixedThreadPool创建一个固定大小的线程池。shutdown():用于关闭启动线程,如果不调用该语句,jvm不会关闭。awaitTermination():用于等待子线程结束,再继续执行下面的代码。该例中我设置一直等着子线程结束。转载 2015-06-19 22:44:32 · 375 阅读 · 0 评论 -
遍历Map的四种方法
public static void main(String[] args) { Map map = new HashMap(); map.put("1", "value1"); map.put("2", "value2"); map.put("3", "value3"); //第一种:普遍使用,二次取值 System.out.println("原创 2016-03-03 21:55:28 · 494 阅读 · 0 评论 -
Java实现音频格式转换 WAV—mp3,可使音频压缩
http://www.xuebuyuan.com/1749979.html最近做的一个小项目中,师兄安排的任务,要实现录音然后保存文件,实现网络传输,然后我用初学的java实现了一个录音机的功能(见前面的博客),但是windows录音默认保存的格式是WAVE,后缀是WAV,经过大量测试,录制一分钟要1M大小,这样不便于网络的传输,于是下面的任务就是实现音频压缩了,搜了几天,找到转载 2016-04-25 10:53:16 · 13134 阅读 · 2 评论 -
推荐一款基于Java的音视频处理开源项目--JAVE
http://blog.csdn.net/softwave/article/details/5819699JAVE(Java Audio Video Encoder),是一款将音频和视频在不同格式间进行转化的工具,是基于ffmpeg项目的Java封装。JAVE,需要J2SE 1.4+、Windows 或 Linux 操作系统均可运行。JAVE支持的编码和解码格式转载 2016-04-25 11:04:01 · 26403 阅读 · 1 评论 -
编码规范系列(一):Eclipse Code Templates设置
http://chenzhou123520.iteye.com/blog/1625629从工作开始,经历了几个项目的开发,现在的项目一般都是一个团队共同开发,而每个人都有自己的编码习惯,为了统一格式,项目组在项目开发之前都会制定一系列的规范。俗话说约定优于配置,但是在执行过程中往往发现效果不是很好(主要是指编码规范这一方面)。所以我们不得不采取一些措施来协助我们统一项目开发转载 2016-05-31 15:12:44 · 922 阅读 · 0 评论 -
Java - JSON Data Operation
POM.xmlorg.codehaus.jacksonjackson-mapper-asl1.9.13JSON String:{"status":"200","msg":"All Priority ISV Software Data have been returned.","data":null,"dataList":[{"id":1,"level":"A原创 2015-06-30 22:31:50 · 630 阅读 · 0 评论