java
vincent_hahaha
haha ha
展开
-
java 使用maven 打包 添加本地lib包
pom.xml中引入三方jar:<dependency> <groupId>test</groupId> <artifactId>test(名字可以自己定)</artifactId> <version>1.0</version> <scope>system</scope> <systemPath>C:/lib/test.jar 本地jar包的绝对.原创 2021-12-31 13:56:47 · 3811 阅读 · 0 评论 -
List(Map(String, Object))转为Fastjson JSONArray
原始的 List<Map<String, Object>> test_list_map 内容如下:[{path=hdfs://manager:9000/testDir/1.txt, isDir=false}, {path=hdfs://manager:9000/testDir/2.2xt, isDir=false}]使用:JSONArray.toJSON(test_l...原创 2020-04-04 00:59:43 · 6478 阅读 · 0 评论 -
java客户端访问kafka
kafka版本:kafka_2.11-0.11.0.1.tgzcentos7关闭防火墙:systemctl stop firewalld.service在kafka中配置文件:listeners=PLAINTEXT://192.168.80.132:9092在java创建consumer:package com.vincent;import org.apache...原创 2017-10-26 15:24:00 · 215 阅读 · 0 评论 -
Java高效读取大文件
1、概述本教程将演示如何用Java高效地读取大文件。这篇文章是Baeldung (http://www.baeldung.com/) 上“Java——回归基础”系列教程的一部分。2、在内存中读取读取文件行的标准方式是在内存中读取,Guava 和Apache Commons IO都提供了如下所示快速读取文件行的方法:Files.readLines(new File(path)...原创 2017-06-16 11:49:00 · 82 阅读 · 0 评论 -
NIO与传统IO的区别(形象比喻)
传统的socket IO中,需要为每个连接创建一个线程,当并发的连接数量非常巨大时,线程所占用的栈内存和CPU线程切换的开销将非常巨大。使用NIO,不再需要为每个线程创建单独的线程,可以用一个含有限数量线程的线程池,甚至一个线程来为任意数量的连接服务。由于线程数量小于连接数量,所以每个线程进行IO操作时就不能阻塞,如果阻塞的话,有些连接就得不到处理,NIO提供了这种非阻塞的能力。...原创 2016-10-12 23:19:00 · 96 阅读 · 0 评论 -
传值与传址
package com.test1;public class Test4 { public static void main(String[] args) { String a="123"; test(a); System.out.println(a); } public static void test(Str...原创 2016-10-15 19:32:00 · 70 阅读 · 0 评论 -
编译哈工大语言技术平台云LTP(C++)源码及LTP4J(Java)源码
JDK:java version “1.8.0_31”Java(TM) SE Runtime Environment (build 1.8.0_31-b13)Java HotSpot(TM) 64-Bit Server VM (build 25.31-b07, mixed mode)OS:win7 64bitcmake:V2.8.12/V3.2.2LTP:V3.2.0LTP4J:V1....原创 2016-10-19 16:53:00 · 298 阅读 · 0 评论 -
过滤器
过滤器基础在web项目中就只有三大组件:Filter过滤器(级别最高)监听器Servlet在web中过滤器就是一个类javax.servletFilter原创 2016-10-19 23:39:00 · 77 阅读 · 0 评论 -
存储过程
存储过程可以让事务在mysql中,避免事务在java,减少java和mysql的通信,提高效率,屏蔽网络延迟原创 2016-10-21 21:59:00 · 75 阅读 · 0 评论 -
Java ThreadLocal 使用详解
ThreadLocal的官方API解释为:"该类提供了线程局部 (thread-local) 变量。这些变量不同于它们的普通对应物,因为访问某个变量(通过其get或set方法)的每个线程都有自己的局部变量,它独立于变量的初始化副本。ThreadLocal实例通常是类中的 private static 字段,它们希望将状态与某一个线程(例如,用户 ID 或事务 ID)相关联。"大概...原创 2016-10-21 22:21:00 · 89 阅读 · 0 评论 -
ArrayList源码分析
public class Test1 { public static void main(String[] args) { List<String> list = new ArrayList<>(); list.add("abc"); list.add("hello"); list.remove("abc"...原创 2016-10-21 22:41:00 · 76 阅读 · 0 评论 -
LinkedList源码分析
LinkedList底层实现采用双向循环链表。LinkedList的插入与删除操作都不涉及到元素的移动,改变的只是元素的指向而已。LinkedList的查找速度是很慢的,因为涉及到元素的逐个获取与比较。LinkedList与ArrayList的区别,本质上是链表和数组的区别。import java.util.LinkedList;import java.util.List;pu...原创 2016-10-21 22:43:00 · 60 阅读 · 0 评论 -
Vector源码分析
import java.util.List;import java.util.Vector;public class VectorTest { public static void main(String[] args) { List<String> vector = new Vector<>(); vector.add...原创 2016-10-21 22:48:00 · 62 阅读 · 0 评论 -
HashSet源码分析1
import java.util.HashSet;import java.util.Iterator;import java.util.Set;public class SetTest { public static void main(String[] args) { Set<String> set = new HashSet<>(...原创 2016-10-24 22:25:00 · 70 阅读 · 0 评论 -
HashSet源码分析2
package com.test1;import java.util.HashSet;import java.util.Iterator;import java.util.Set;public class SetTest { public static void main(String[] args) { /* * Set<Str...原创 2016-10-24 22:27:00 · 65 阅读 · 0 评论 -
Java异常体系
运行时异常(非检查异常)与非运行时异常(检查异常,checked exception)异常。在java中,运行时异常,可以不进行捕获,程序编译可以通过。一切继承自RuntimeException的异常都是运行时异常。直接继承自Exception的异常都是非运行时异常。...原创 2016-10-24 22:28:00 · 62 阅读 · 0 评论 -
java的static块执行时机
之前一直认为static块是在class load的时候执行,今天在验证Spring初始化Context loader的时候,发现bean的static块并没有执行。Class A{ static{ System.out.println("static block invoked!") } }那么static块到底在什么时候运行的呢?如果了解JVM原...原创 2016-10-24 22:32:00 · 85 阅读 · 0 评论 -
继承的一个疑问
public class Base{ private String baseName = "base"; public Base() { callName(); } public void callName() { System. out. println(baseName); } ...原创 2016-10-24 22:36:00 · 84 阅读 · 0 评论 -
Builder设计模式
Builder模式,又称生成器或构建者模式,属于对象创建型模式,侧重于一步一步的构建复杂对象,只有在构建完成后才会返回生成的对象。Builder模式将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。使用场景1、当创建复杂对象的算法应该独立于该对象的组成部分以及它们的装配方式时,比如买一台电脑,我不需要知道电脑CPU,主板,机箱是如何生产的,也不需要知道它们是如何组装...原创 2016-10-24 22:36:00 · 70 阅读 · 0 评论 -
多维数组的遍历性能
数组是Java中的一种容器对象,它拥有多个单一类型的值。当数组被创建的时候数组长度就已经确定了。在创建之后,其长度是固定的。下面是一个长度为10的数组:public class ArrayDemo { private int arraySize=10; public int[] arrayOfIntegers = new int[arraySize];}上面的代码是一维...原创 2016-10-24 22:37:00 · 452 阅读 · 0 评论 -
类加载机制
首先看一段代码,想想下面的代码输出结果是什么:/** * * @author vincent_duan * */public class LoadingTest { public static LoadingTest obj = new LoadingTest(); public static int val1; public static int va...原创 2016-10-24 22:40:00 · 74 阅读 · 0 评论 -
JVM内存区域划分Eden Space、Survivor Space、Tenured Gen,Perm Gen解释
jvm区域总体分两类,heap区和非heap区。heap区又分:Eden Space(伊甸园)、Survivor Space(幸存者区)、Tenured Gen(老年代-养老区)。 非heap区又分:Code Cache(代码缓存区)、Perm Gen(永久代)、Jvm Stack(java虚拟机栈)、Local Method Statck(本地方法栈)。HotSpot虚拟机GC算法采用分代收...原创 2016-10-24 22:45:00 · 77 阅读 · 0 评论 -
java实现二叉树
package ds.tree;/** * 使用二叉链表实现二叉树。 */public class BinaryTree<T> { /** * 结点类。 */ class Node { int value; // 该节点存储的值。 Node leftChild; // 指向左子节点的引用。 ...原创 2016-10-24 22:46:00 · 88 阅读 · 0 评论 -
hashcode的理解
============================================================如何理解hashCode的作用:============================================================以java.lang.Object来理解,JVM每new一个Object,它都会将这个Object丢到一个Hash哈希...原创 2016-10-29 19:17:00 · 110 阅读 · 0 评论 -
深入浅出JVM
虚拟机: 指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统有哪些虚拟机: VMWare Visual Box JVM:使用软件模拟Java字节码的指令集JDK的发展历程: •1996年 SUN JDK 1.0 Classic VM –纯解释运行,使用外挂进行JIT •1997年 JDK1.1 发布 –A...原创 2016-10-29 19:21:00 · 71 阅读 · 0 评论 -
java.lang.ClassNotFoundException: org.springframework.web.servlet.DispatcherServlet
新建Maven 项目的时候报错:java.lang.ClassNotFoundException: org.springframework.web.servlet.DispatcherServletjava.lang.ClassNotFoundException: org.springframework.web.servlet.DispatcherServlet at org.a...原创 2016-10-29 19:23:00 · 89 阅读 · 0 评论 -
HashCode和equal方法
equals()反映的是对象或变量具体的值,即两个对象里面包含的值--可能是对象的引用,也可能是值类型的值。而hashCode()是对象或变量通过哈希算法计算出的哈希值。之所以有hashCode方法,是因为在批量的对象比较中,hashCode要比equals来得快,很多集合都用到了hashCode,比如HashTable。两个obj,如果equals()相等,hashCode()...原创 2016-10-29 19:27:00 · 105 阅读 · 0 评论 -
why在重写equals时还必须重写hashcode方法
首先我们先来看下String类的源码:可以发现String是重写了Object类的equals方法的,并且也重写了hashcode方法public boolean equals(Object anObject) { if (this == anObject) { return true; } if (anObject instanceof Str...原创 2016-10-29 19:29:00 · 61 阅读 · 0 评论 -
java中 == 与 equal 的区别
废话不多说了,开门见山吧,先来看一段代码:String str1 = new String("str"); String str2 = new String("str"); System.out.println("==比较 :"+ (str1 == str2)); System.out.println("equal比较:"+ str1.eq...原创 2016-10-29 19:29:00 · 58 阅读 · 0 评论 -
Java重写equals方法和hashCode方法
package com.ddy;public class User { private Integer id; private String name; private String address; private String phone; public Integer getId() { re...原创 2016-10-29 19:31:00 · 83 阅读 · 0 评论 -
枚举的好处
如果定义了一个枚举public enum ColorEnum {red,green,yellow,blue;}1、那么调用方法 public void method(ColorEnum enum) {}时只能传递red,green,...四个值中的一个,否则编译会出错,这对于用户编程而言是安全的2、枚举类型相对与常量类型拥有更好的可读性,...原创 2016-10-29 19:32:00 · 338 阅读 · 0 评论 -
Java heap space设置方法记录
近被 OutOfMemory Error折腾得够呛,记载一点设置JVM虚拟机内存Javaheap space的方法。Tomcat 7参考:http://www.davidghedini.com/pg/entry/install_tomcat_7_on_centoshttp://blog.csdn.net/f_zongjian/article/details/5723665网...原创 2016-10-29 19:38:00 · 181 阅读 · 0 评论 -
org.hibernate.ObjectDeletedException: deleted obje
org.hibernate.ObjectDeletedException:deletedobjectwouldbere-savedbycascade(removedeletedobjectfromassociations):[ac.iie.dsm.db.model.PlatformUser#1]atorg.hibernate.internal.Sessio...原创 2015-07-08 17:50:00 · 245 阅读 · 0 评论 -
Servlet压缩
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //1.声明被压缩的数据 String str = "Hello你好"; //2.获取准备压缩的数...原创 2015-04-14 00:54:00 · 150 阅读 · 0 评论 -
如何利用反射来绕过泛型
publicclassMethodDemo4{publicstaticvoidmain(String[]args){ArrayListlist=newArrayList();ArrayList<String>list1=newArrayList<String>();list1.add("hello...原创 2015-03-14 15:30:00 · 168 阅读 · 0 评论 -
代理模式
代理模式定义:为其他对象提供一种代理,以控制对这个对象的访问代理对象起到中介作用,可以去掉功能服务或增加额外的服务。代理模式分为:远程代理,虚拟代理,根据需要将资源消耗很大的对象进行延迟,真正需要的时候进行创建保护代理,控制对一个对象的访问权限智能引用代理:提供对目标对象额外的服务。我们以智能引用代理为例来讲解。智能引用代理有两种实现方式,静态代...原创 2015-03-14 17:27:00 · 74 阅读 · 0 评论 -
使用聚合的方式实现静态代理
我们有一个Car类,其中有一个行驶的方法实现了一个接口。importjava.util.Random;publicclassCarimplementsMoveable{@Overridepublicvoidmove(){//TODOAuto-generatedmethodstubtry{Thread.sleep(newRand...原创 2015-03-14 17:44:00 · 102 阅读 · 0 评论 -
动态代理
静态代理仅仅能够代理某一个类,如果有多个类,就需要写多个代理类。Java动态代理类位于java.lang.reflect包下,一般主要涉及到以下两个类:1)Interface InvocationHandler:该接口中仅定义了一个方法:public Object invoke(Object obj,Method method,Object[] args...原创 2015-03-15 10:26:00 · 75 阅读 · 0 评论 -
JDK动态代理与CGLIB动态代理区别
JDK动态代理 只能代理实现了接口的类 没有实现接口的类不能实现JDK的动态代理 CGLIB动态代理 针对类来实现代理的 对指定目标类产生一个子类,通过方法拦击技术拦截所有父类方法的调用 使用Cglib实现动态代理packagecom.imooc.cglib;publicclassTrain{publicvoidmove()...原创 2015-03-16 17:51:00 · 91 阅读 · 0 评论 -
C3p0连接池
<!--默认配置,如果没有指定则使用这个配置,只可以出现一次--><default-config><!--连接超时设置30秒--><propertyname="checkoutTimeout">30000</property><!--30秒检查一次Connection的空闲时间-->...原创 2015-03-22 11:04:00 · 76 阅读 · 0 评论