java
文章平均质量分 72
zhuguorong11
这个作者很懒,什么都没留下…
展开
-
Java optional
Optional是Java8提供的为了解决null安全问题的一个API。善用Optional可以使我们代码中很多繁琐、丑陋的设计变得十分优雅。使用Optional,我们就可以把下面这样的代码进行改写:public static String getName(User u) { if (u == null) return "Unknown"; return ...转载 2018-11-22 12:15:52 · 937 阅读 · 0 评论 -
Java数据结构与算法解析---AVL树
AVL树简介而AVL树就是解决普通二叉查找树弊端的方法,他是带有平衡条件的二叉查找树,这个平衡条件必须容易保持,而且它保证树的深度必须是O(logN).AVL树是高度平衡的而二叉树。它的特点是:AVL树中任何节点的两个子树的高度最大差别为1。上面的两张图片,左边的是AVL树,它的任何节点的两个子树的高度差别都AVL树的实现1.节点// AVL树的转载 2017-09-23 11:11:36 · 298 阅读 · 0 评论 -
Maven常用命令
Maven常用命令: 1. 创建Maven的普通java项目: mvn archetype:create -DgroupId=packageName -DartifactId=projectName 2. 创建Maven的Web项目: mvn archetype:create -DgroupId=packageName转载 2017-07-20 23:47:57 · 185 阅读 · 0 评论 -
Srpingboot-JPA使用
spring data jpa介绍首先了解JPA是什么?JPA(Java Persistence API)是Sun官方提出的Java持久化规范。它为Java开发人员提供了一种对象/关联映射工具来管理Java应用中的关系数据。他的出现主要是为了简化现有的持久化开发工作和整合ORM技术,结束现在Hibernate,TopLink,JDO等ORM框架各自为营的局面转载 2017-07-29 14:15:39 · 292 阅读 · 0 评论 -
SpringBoot-使用Mybatis
可以使用jpa这种极简的模式。orm框架的本质是简化编程中操作数据库的编码,发展到现在基本上就剩两家了,一个是宣称可以不用写一句SQL的hibernate,一个是可以灵活调试动态sql的mybatis,两者各有特点,在企业级系统开发中可以根据需求灵活使用。发现一个有趣的现象:传统企业大都喜欢使用hibernate,互联网行业通常使用mybatis。hibernate特点转载 2017-07-29 14:13:58 · 311 阅读 · 0 评论 -
HiKariCP数据库连接池
HiKariCP是数据库连接池的一个后起之秀,号称性能最好,可以完美地PK掉其他连接池官网:https://github.com/brettwooldridge/HikariCPJava 8 maven artifact: dependency> groupId>com.zaxxergroupId> artifactId>Hikar原创 2017-07-11 10:42:32 · 9851 阅读 · 1 评论 -
Java Socket编程
对于Java Socket编程而言,有两个概念,一个是ServerSocket,一个是Socket。服务端和客户端之间通过Socket建立连接,之后它们就可以进行通信了。首先ServerSocket将在服务端监听某个端口,当发现客户端有Socket来试图连接它时,它会accept该Socket的连接请求,同时在服务端建立一个对应的Socket与之进行通信。这样就有两个Socket了,客户端和服务端原创 2017-05-22 10:58:54 · 286 阅读 · 1 评论 -
LCS算法
//最长公共子序列public class LCS { public static void main(String[] args) { String s1 = "ABCBDAB"; String s2 = "BDCABA"; char[] c1 = s1.toCharArray(); char[] c2 = s2.toCharArray(); long start1 =原创 2017-02-12 10:11:39 · 507 阅读 · 0 评论 -
java最大堆
public class HeapBig { public static void main(String[] args) { // TODO 自动生成的方法存根 int[] a = {10, 8, 11, 8, 14, 9, 4, 1, 17}; HeapBig hb = new HeapBig(); hb.heapSort(a); for(int x : a) S原创 2017-04-01 14:06:51 · 1063 阅读 · 0 评论 -
Java之DBUtils讲解
DBUtils是个小巧的JDBC轻量级封装的工具包,其最核心的特性是结果集的封装,可以直接将查询出来的结果集封装成JavaBean,这就为我们做了最枯燥乏味、最容易出错的一大部分工作。在使用DBUtils之前,应该注意一些问题: 1、DBUtils是JDBC的简单封装,可以和JDBC混合使用。 2、DBUtils对结果集自动封装为JavaBean是有着苛刻要求的:必须满足转载 2017-09-23 11:35:52 · 550 阅读 · 0 评论 -
JDBCUtils
利用Java操作MySql数据库的一个框架类JdbcUtils.java,完成对数据库的增删改查。其中查询这块,包括普通的查询和利用反射完成的查询,主要包括以下几个函数接口:1、public Connection getConnection() 获得数据库的连接2、public boolean updateByPreparedStatement(String sql, List转载 2017-09-25 11:45:04 · 7629 阅读 · 0 评论 -
Java中的逆变与协变
看下面一段代码:// public final class Integer extends NumberNumber num = new Integer(1); List<Number> list = new ArrayList<>();list.add(new Integer(3));ArrayList<Number> list = new A...转载 2018-11-22 11:09:16 · 396 阅读 · 0 评论 -
史上最简单的 IntelliJ IDEA 教程
1 简介 IntelliJ IDEA(简称 IDEA),是 Java 语言开发的集成环境,IDEA 在业界被公认为最好的 Java 开发工具之一,尤其在智能代码助手、代码自动提示、重构、J2EE 支持、各类版本工具(Git、SVN、GitHub 等)、JUnit、CVS 整合、代码分析和创新的 GUI 设计等方面的功能都值得称道。至于 Eclipse 博主接触的不多,因此也无法比较,但殊途同归,...转载 2018-06-06 22:17:47 · 446 阅读 · 0 评论 -
字节码的编译原理
1.编译原理 java编译器在将java源码编译为一个有效的字节码文件,主要会经历4个步骤:词法解析à语法解析à语义解析à生成字节码2.词法解析步骤2.1词法解析过程 词法解析是javac编译器执行字节码编译的第一步。主要任务就是将java源码中的关键字和标示符等内容转换为符合java语法规范的Token序列,然后按照指定的顺序规则进行匹配校验,以便为后续的语法解析步骤做准备。2.2...转载 2018-03-23 23:12:01 · 1373 阅读 · 0 评论 -
Springmvc中web.xml的配置详解
首先,web.xml中需要配置的哪些东西?1.配置监听器<listener> 它有两个监听器: 1). <!--配置文件加载监听器--> <listener> <listener-class>org.springframework.web.context...转载 2018-02-25 22:53:48 · 429 阅读 · 0 评论 -
SpringCloud 教程
链接转自 教程链接转载 2018-01-03 22:02:08 · 218 阅读 · 0 评论 -
OkHttp3详细使用教程
概述OkHttp现在应该算是最火的OkHttp,Retrofit底层也是使用OkHttp,网上很多教程都写的不错,但是有些我认为重要的知识,大多一笔带过,所以我决定写一篇入门文章OkHttp官网地址:http://square.github.io/okhttp/ OkHttp GitHub地址:https://github.com/square/okhttp出现背景转载 2017-10-24 22:40:23 · 3133 阅读 · 0 评论 -
Trie树-Java实现
刷leetcode时候,经常碰见有使用Trie的,其意思就是字典树,一组单词,inn, int, at, age, adv, ant, 我们可以得到下面的Trie:当遇到一种问题,比如“ 有一个1G大小的一个文件,里面每一行是一个词,词的大小不超过16字节,内存限制大小是1M。返回频数最高的100个词。” 该如何解决? 有一种方案就是使用Trie树加 排序实现。以下原创 2017-10-05 20:31:00 · 363 阅读 · 0 评论 -
MyBatis的学习
对mybatis学习链接笔记转载 2017-09-10 21:00:34 · 202 阅读 · 0 评论 -
Java虚拟机内存分配
简单来说,对象内存分配主要是在堆中分配。但是分配的规则并不是固定的,取决于使用的收集器组合以及JVM内存相关参数的设定以下介绍几条基本规则(使用的ParNew+Serial Old收集器组合):一,对象优先在新生代Eden区分配[java] view plain copy//-XX:+UseParNewGC -Xms20m -Xmx20m -转载 2017-03-23 16:16:29 · 336 阅读 · 0 评论 -
Java虚拟机类加载
虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析、初始化,最终形成可以被虚拟机直接使用的Java类型,这就是虚拟机的类加载机制从类被加载到虚拟机内存中开始,到卸载出内存为止,类的生命周期包括加载(Loading)、验证(Verification)、准备(Preparation)、解析(Resolution)、初始化(Initialization)、使用(Using)和转载 2017-03-23 16:15:20 · 1074 阅读 · 0 评论 -
关于 ArrayList 的 5 道面试题
1、ArrayList的大小是如何自动增加的?你能分享一下你的代码吗?这是最有技巧性的的一个问题,大多数人都无法回答。事实上,当有人试图在arraylist中增加一个对象的时候,Java会去检查arraylist,以确保已存在的数组中有足够的容量来存储这个新的对象。如果没有足够容量的话,那么就会新建一个长度更长的数组,旧的数组就会使用Arrays.copyOf方法被复制到新的数转载 2017-03-12 21:48:53 · 276 阅读 · 0 评论 -
Java中JNI:JNIEnv类型和jobject类型的解释
这一篇主要来说一下,那个本地方法sayHello的参数的说明,以及其中方法的使用首先来看一下C++中的sayHello方法的实现:[cpp] view plain copy JNIEXPORT void JNICALL Java_com_jni_demo_JNIDemo_sayHello (JNIEnv * env, jobject转载 2016-09-02 08:58:32 · 2019 阅读 · 0 评论 -
Linux平台Java调用so库-JNI使用例子
首先,编写一个Java文件,包含有native方法public class MyJni { public native void display(); public native double sum(double x, double y); public static void main(String[] args) { }}其次,将此Ja转载 2016-08-31 08:49:10 · 1394 阅读 · 0 评论 -
Java中JNI:JNIEnv类型中方法的使用
上一篇说道JNIEnv中的方法的用法,这一篇我们就来通过例子来看一下这些方法的使用:首先是第一个例子:在Java代码中定义一个属性,然后再C++代码中将其设置成另外的值,并且输出来先来看一下Java代码:[java] view plain copy package com.jni.demo; public class J转载 2016-09-02 22:14:02 · 392 阅读 · 0 评论 -
Compare Version Numbers
public class Solution { public static void main(String[] args) { // TODO Auto-generated method stub System.out.println(Solution.compareVersion("1.1", "1.0.45")); } public static int compareVer原创 2016-08-21 23:54:22 · 264 阅读 · 0 评论 -
Java 集合框架源码分析(三)——HashMap
介绍HashMap 是Java 集合框架中重要的组成部分,也是平常使用频率很高的一个集合类,典型使用方式如下:Map map=new HashMap<>();map.put(1,"Java EE");map.put(2,"Android");...1234它的类继承层级结构如下。类层次 java.lang.Object 继承者 java.util转载 2016-08-21 21:47:47 · 337 阅读 · 0 评论 -
Java 集合框架源码分析(二)——LinkedList
介绍LinkedList 也是Java集合框架的重要组成部分。其中类层次结构如下。java.lang.Object 继承者 java.util.AbstractCollection 继承者 java.util.AbstractList 继承者 java.util.AbstractSequentialList 继承者 java.util.LinkedList转载 2016-08-21 21:20:59 · 382 阅读 · 0 评论 -
Java 集合框架源码分析(一)——ArrayList
简介ArrayList中是平常比较常用的一个集合类,经常帮助我们封装一些实体Bean的List集合。典型使用场景如下:List bookList=new ArrayList(); bookList.add(book1); bookList.add(book2); ...ArrayList位于java.util 属于Java集合框架的一部分。层次关系如下。转载 2016-08-21 20:26:22 · 462 阅读 · 0 评论 -
Min Stack
esign a stack that supports push, pop, top, and retrieving the minimum element in constant time.push(x) -- Push element x onto stack.pop() -- Removes the element on top of the stack.top() -- Get t原创 2016-08-18 23:41:43 · 201 阅读 · 0 评论 -
Arrays.binarySearch以及Longest Increasing Subsequence
Arrays.binarySearch();的用法。public static int binarySearch(Object[] a,Object key) 使用二分搜索法来搜索指定数组,以获得指定对象。在进行此调用之前, 必须根据元素的自然顺序对数组进行升序排序(通过 sort(Object[]) 方 法)。如果没有对数组进行排序,则结果是不确定的。(如果数组包含原创 2016-09-15 18:47:37 · 216 阅读 · 0 评论 -
java Queue中 remove/poll, add/offer, element/peek区别
这里简单对其重复的方法做点简单的区分。offer,add区别:一些队列有大小限制,因此如果想在一个满的队列中加入一个新项,多出的项就会被拒绝。这时新的 offer 方法就可以起作用了。它不是对调用 add() 方法抛出一个 unchecked 异常,而只是得到由 offer() 返回的 false。 poll,remove区别:remove() 和转载 2016-08-13 23:53:38 · 1275 阅读 · 0 评论 -
Java虚拟机垃圾回收机制
本文内容来源于《深入理解Java虚拟机》一书,非常推荐大家去看一下这本书。本系列其他文章:【深入理解Java虚拟机】Java内存区域模型、对象创建过程、常见OOM1、垃圾回收要解决的问题垃圾收集(Garbage Collection,GC),要设计一个GC,需要考虑解决下面三件事情:(1)哪些内存需要回收?(2)什么时候回收?转载 2017-02-22 22:21:04 · 220 阅读 · 0 评论 -
Java String 综述
摘要: Java 中的 String类 是我们日常开发中使用最为频繁的一个类,但要想真正掌握的这个类却不是一件容易的事情。本文从 Java 内存模型展开,结合 JDK 中 String 类的源码进行深入分析,特别就 String类与享元模式,String 常量池,String的不可变性,String对象的创建方式,String 与 克隆的问题,String、StringBuffer转载 2017-02-14 12:21:42 · 306 阅读 · 0 评论 -
详细分析Java中断机制
1. 引言当我们点击某个杀毒软件的取消按钮来停止查杀病毒时,当我们在控制台敲入quit命令以结束某个后台服务时……都需要通过一个线程去取消另一个线程正在执行的任务。Java没有提供一种安全直接的方法来停止某个线程,但是Java提供了中断机制。如果对Java中断没有一个全面的了解,可能会误以为被中断的线程将立马退出运行,但事实并非如此。中断机制是如何工作的?捕获或检测到中断后,是抛出转载 2017-01-06 13:14:33 · 228 阅读 · 0 评论 -
Java集合类型详解
这篇文章总结了所有的Java集合(Collection)。主要介绍各个集合的特性和用途,以及在不同的集合类型之间转换的方式。ArraysArray是Java特有的数组。在你知道所要处理数据元素个数的情况下非常好用。java.util.Arrays 包含了许多处理数据的实用方法:Arrays.asList:可以从 Array 转换成 List。可以作为其他集合类型构造器的参数转载 2017-01-05 17:07:07 · 212 阅读 · 0 评论 -
Spring 核心框架体系结构
http://www.codeceo.com/article/spring-core-framework-architecture.html转载 2016-12-27 20:30:43 · 239 阅读 · 0 评论 -
对Java Serializable(序列化)的理解和总结
1、序列化是干什么的? 简单说就是为了保存在内存中的各种对象的状态(也就是实例变量,不是方法),并且可以把保存的对象状态再读出来。虽然你可以用你自己的各种各样的方法来保存object states,但是Java给你提供一种应该比你自己好的保存对象状态的机制,那就是序列化。2、什么情况下需要序列化 a)当你想把的内存中的对象状态保存到一个文件中或者数据库中时候转载 2016-10-31 14:32:40 · 355 阅读 · 0 评论 -
Binary Watch
bitCount方法——获取二进制补码中1位的数量bitCount方法返回指定int值的二进制补码表示形式的1位的数量。原创 2016-10-03 19:28:37 · 563 阅读 · 0 评论 -
第一个hadoop入门程序WordCount
package com.yootk.mr.demo;import java.io.IOException;import org.apache.hadoop.conf.Configuration;import org.apache.hadoop.fs.Path;import org.apache.hadoop.io.IntWritable;import org.apache.hadoo原创 2016-08-26 12:50:33 · 582 阅读 · 0 评论