
JAVA基础
kinglyjn
Simple is Beautiful | Eamil:admin@keyllo.com | Welcome: http://www.keyllo.com
展开
-
java内部类使用小结
概述内部类是指在一个外部类的内部再定义一个类。类名不需要和文件夹相同。内部类可以是静态static的,也可用public,default,protected和private修饰,而外部顶级类即类名和文件名相同的只能使用public和default内部类是一个编译时的概念,一旦编译成功,就会成为完全不同的两类。对于一个名为outer的外部类和其内部定义的名为inner的内部类。编译完成后出现ou原创 2016-12-23 16:19:56 · 318 阅读 · 0 评论 -
JAVA中的线程池-ThreadPoolExecutor
java中的线程池是运用场景最多的并发组件,几乎所有的异步或者并发任务的程序都可以使用线程池。在开发过程中使用线程池将会带来3个好处: 降低资源的消耗。通过反复利用已创建的线程降低线程创建和销毁造成的消耗; 提高响应速度。当任务到达时,任务可以不需要等到线程创建就立即执行; 提高线程的可管理性。 线程池的主要处理流程当提交一个新任务到线程池时,线程池的主要处理流程如下:原创 2017-08-01 16:21:38 · 502 阅读 · 0 评论 -
JAVA中的线程池-Executor框架
在java中,使用线程来异步执行任务,java线程的创建与销毁需要增加一定的开销,如果我们为每一个任务创建一个新线程来执行,这些线程的创建和销毁需要耗费大量的计算资源,同时这种策略可能会使处于高负荷状态的应用最终崩溃。 Java的线程既是工作单元,也是执行机制。从JDK1.5开始,把工作单元与执行机制分离开来,工作单元包括Runnable和Callable,而执行机制由Executor框架原创 2017-08-03 17:20:05 · 520 阅读 · 0 评论 -
JAVA内存模型以及垃圾回收机制
一个优秀Java程序员,必须了解Java内存模型、GC工作原理,以及如何优化GC的性能、与GC进行有限的交互,有一些应用程序对性能要求较高,例如嵌入式系统、实时系统等,只有全面提升内存的管理效率,才能提高整个应用程序的性能。本文将从JVM内存模型、GC工作原理,以及GC的几个关键问题进行探讨,从GC角度提高Java程序的性能。一、Java内存模型按照官方的说法:Java 虚拟机具有一个堆,堆是运行原创 2017-08-03 17:34:29 · 399 阅读 · 0 评论 -
hadoop java API(二)
HDFS java API Base首先要拷贝hadoop配置文件 和 log4j.properties 到maven项目的类路径(e.g. resources 目录)<!-- hadoop客户端依赖包--><dependency> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-client</artifactId>转载 2017-08-25 15:55:37 · 464 阅读 · 0 评论 -
hive的基本简介及安装、配置、使用(一)
hive是什么? 由facebook开源,用于解决海量结构化日志的数据统计; 基于hadoop的一个数据仓库工具,使用HDFS进行存储并将结构化数据文件映射成一张表,并提供类sql查询的功能,其底层采用MR进行计算; 本质是将HQL转化成MR程序。 hive架构图安装前的准备Java 1.7 (preferred)Hadoop 2.x (preferred), 1.原创 2017-08-23 18:34:45 · 5159 阅读 · 0 评论 -
hadoop的基本简介及安装、配置、使用(一)
大数据的特点大(大象 Volume)繁(章鱼 Variety)快(豹子 Velocity)值(淘金 Value)由谷歌的三驾马车引申出hadoopMapReduce —> Map & Reduce 计算架构GFS —> HDFS分布式文件系统bigtable —> hbase数据库hadoop的常用版本HADOOP是什么:可靠的、可扩展的、分布式计算框架。apache hadoopc原创 2017-08-15 21:51:13 · 951 阅读 · 0 评论 -
Hbase 数据迁移的常见方式(四)
要使用Hadoop,需要将现有的各种类型的数据库或数据文件中的数据导入HBase。一般而言,有三种常见方式:使用HBase的API中的Put方法,使用HBase 的bulk load工具和使用定制的MapReduce Job方式。本文均有详细描述。数据导入hbase的常见方法数据的来源:日志RDBMS导入的常见方法:使用hbase put API(sqoop、kettle)使用HBase的原创 2017-08-29 19:46:59 · 4352 阅读 · 0 评论 -
Hbase的基本简介及安装、配置、使用(一)
Hbase简介 Hbase是一个构建在HDFS之上的、分布式的、可扩展的、面向列存储的开源数据库,是google的bigtable的开源实现,适用于海量数据的存储和实时查询,是hadoop生态系统中重要的一员。以下是hbase处理数据的物理架构图:1. master-slave主从架构。2. table从竖直方向进行切割,分成若干个区域region,由各个区域服务器regionserver进原创 2017-08-26 18:37:52 · 1460 阅读 · 1 评论 -
java远程调试
jdwp远程调试简介Java远程调试的原理是两个VM之间通过debug协议进行通信,然后以达到远程调试的目的。两者之间可以通过socket进行通信。这对于一些分布式框架(如hadoop集群、storm集群等)的远程调试非常有用!首先被debug程序的虚拟机在启动时要开启debug模式,启动debug监听程序。jdwp是Java Debug Wire Protocol的缩写。jdk1.7版本之前的方法原创 2017-11-30 11:48:33 · 1146 阅读 · 0 评论 -
ConcurrentHashMap
layout: post title: “JAVA并发容器和框架-ConcurrentHashMap” desc: “JAVA并发容器和框架-ConcurrentHashMap” keywords: “JAVA并发容器和框架-ConcurrentHashMap,java,kinglyjn,张庆力” date: 2017-07-28 categories: [Java] tags: [J原创 2017-07-31 17:45:25 · 353 阅读 · 0 评论 -
使用gradle创建多项目
使用gradle创建多项目初始化项目> mkdir zdemo-gradle-parent && cd zdemo-gradle-parent> gradle init> tree.├── build.gradle├── gradle│ └── wrapper│ ├── gradle-wrapper.jar│ └── gradle-wrapper.prope原创 2017-07-03 00:08:00 · 880 阅读 · 0 评论 -
springmvc-4.3.7.RELEASE核心源码断点分析
springmvc请求执行流程springmvc核心源码核心方法:DispatcherServlet.doDispatcher该方法控制着springmvc处理和响应请求的核心流程,源码和注释如下:protected void doDispatch(HttpServletRequest request, HttpServletResponse response) throws Exception {原创 2017-04-15 21:29:41 · 1422 阅读 · 0 评论 -
从Set里面取出有序的记录
Set里面的记录是无序的,如果想使用Set,然后又想里面的记录是有序的,就可以使用TreeSet,而不是HashSet,在使用TreeSet的时候,里面的元素必须是实现了Comparable接口的,TreeSet在进行排序的时候就是通过比较它们的Comparable接口的实现!import java.util.Set;import java.util.TreeSet;public class T原创 2016-12-23 17:58:13 · 389 阅读 · 0 评论 -
java泛型小结
泛型类public class Fanxinglei<T> { private T obj; public T getObj() { return obj; } public void setObj(T obj) { this.obj = obj; } @Override public String toString(原创 2016-12-29 14:31:53 · 255 阅读 · 0 评论 -
工具 - gson解析json
gson是google解析json的一个开源框架,同类的框架fastJson,JackJson等。使用gson处理html特殊字符public static void main(String[] args) { Map<String, String> map = new HashMap<String, String>(); map.put("s", "\u003chtml\u00原创 2016-12-29 16:35:10 · 603 阅读 · 0 评论 -
java开发常见设计模式
责任链模式/*** 封装请求体*/public class Request { private String content; public Request(String content) { super(); this.content = content; } public String getContent() {原创 2016-12-28 15:45:48 · 325 阅读 · 0 评论 -
Java ThreadLocal
ThreadLocal是什么早在JDK 1.2的版本中就提供Java.lang.ThreadLocal,ThreadLocal为解决多线程程序的并发问题提供了一种新的思路。使用这个工具类可以很简洁地编写出优美的多线程程序。当使用ThreadLocal维护变量时,ThreadLocal为每个使用该变量的线程提供独立的变量副本,所以每一个线程都可以独立地改变自己的副本,而不会影响其它线程所对应的副本。从原创 2017-01-12 12:59:50 · 288 阅读 · 0 评论 -
Hibernate Calendar API
java.util.CalendarCalendar 的 month 从 0 开始,也就是全年 12 个月由 0 ~ 11 进行表示。 Calendar.DAY_OF_WEEK 定义和值如下:Calendar.SUNDAY = 1Calendar.MONDAY = 2Calendar.TUESDAY = 3Calendar.WEDNESDAY = 4Calendar.THURSDAY =原创 2017-01-19 15:57:58 · 458 阅读 · 0 评论 -
浏览器中的data类型的Url格式 data:image/png,data:image/jpeg
所谓”data”类型的Url格式,是在RFC2397中 提出的,目的对于一些“小”的数据,可以在网页中直接嵌入,而不是从外部文件载入。例如对于img这个Tag,哪怕这个图片非常非常的小,小到只有一个 点,也是要从另外一个外部的图片文件例如gif文件中读入的,如果浏览器实现了data类型的Url格式,这个文件就可以直接从页面文件内部读入了。 data类型的Url格式早在1998年就提出了,时至今日,F原创 2017-01-23 14:03:02 · 3078 阅读 · 0 评论 -
java动态代理(类加载、asm、cglib、javassist)
class文件简介及加载Java编译器编译好Java文件之后,产生.class 文件在磁盘中。这种class文件是二进制文件,内容是只有JVM虚拟机能够识别的机器码。JVM虚拟机读取字节码文件,取出二进制数据,加载到内存中,解析.class 文件内的信息,生成对应的 Class对象:class字节码文件是根据JVM虚拟机规范中规定的字节码组织规则生成的、具体class文件是怎样组织类信息的,可以参考原创 2017-03-21 11:37:46 · 1593 阅读 · 0 评论 -
java RMI
简介RMI(即Remote Method Invoke 远程方法调用)。在Java中,只要一个类extends了java.rmi.Remote接口,即可成为存在于服务器端的远程对象,供客户端访问并提供一定的服务。JavaDoc描述:Remote 接口用于标识其方法可以从非本地虚拟机上调用的接口。任何远程对象都必须直接或间接实现此接口。只有在“远程接口”(扩展 java.rmi.Remote 的接口)原创 2017-03-21 16:13:01 · 326 阅读 · 0 评论 -
Ant构建hadoop工程
build.xml<project name="zdemo-hadoop-debug" basedir="." default="prepare"> <property name="myclasspath" value="/Users/zhangqingli/Documents/y/mylibs/hadoop/2.5.0/jar" /> <property name="targett原创 2017-11-30 13:51:06 · 308 阅读 · 0 评论