03 2018 档案

摘要:Java IO: 文件 在Java应用程序中,文件是一种常用的数据源或者存储数据的媒介。所以这一小节将会对Java中文件的使用做一个简短的概述。这篇文章不会对每一个技术细节都做出解释,而是会针对文件存取的方法提供给你一些必要的知识点。在之后的文章中,将会更加详细地描述这些方法或者类,包括方法示例等等 阅读全文
posted @ 2018-03-29 10:28 hanxue1122 阅读(234) 评论(0) 推荐(0) 编辑
摘要:Java IO 概述 在这一小节,我会试着给出Java IO(java.io)包下所有类的概述。更具体地说,我会根据类的用途对类进行分组。这个分组将会使你在未来的工作中,进行类的用途判定时,或者是为某个特定用途选择类时变得更加容易。 输入和输出 – 数据源和目标媒介 术语“输入”和“输出”有时候会有 阅读全文
posted @ 2018-03-29 10:11 hanxue1122 阅读(206) 评论(0) 推荐(1) 编辑
摘要:文章来源:leaforbook - 如何正确使用Java异常处理机制作者:士别三日 第一节 异常处理概述 第二节 Java异常处理类 2.1 Throwable 2.1.1 Throwable有五种构造方法 2.1.2 Throwable的所有成员方法 2.2 Error 2.3 Exception 阅读全文
posted @ 2018-03-20 11:03 hanxue1122 阅读(269) 评论(0) 推荐(0) 编辑
摘要:最近用spring4.x整合Jackson,结果莫名其妙的一直报错,网上收索的结果都是在maven或者gradle的环境下配置依赖条件解决的;但是eclipseIDE环境下的jar包应该是会自动依赖影射的。结果一直也没找到可以解决的答案。 后来实在是木有办法了,怀疑到版本的问题了,结果就是版本问题导 阅读全文
posted @ 2018-03-15 17:05 hanxue1122 阅读(1435) 评论(1) 推荐(1) 编辑
摘要:一、WhitespaceAnalyzer 以空格作为切词标准,不对语汇单元进行其他规范化处理。很明显这个实用英文,单词之间用空格。 二、SimpleAnalyzer 以非字母符来分割文本信息,并将语汇单元统一为小写形式,并去掉数字类型的字符。很明显不适用于中文环境。 三、StopAnalyzer 停 阅读全文
posted @ 2018-03-10 23:09 hanxue1122 阅读(916) 评论(0) 推荐(0) 编辑
摘要:Lucene 是apache软件基金会一个开放源代码的全文检索引擎工具包,是一个全文检索引擎的架构,提供了完整的查询引擎和索引引擎,部分文本分析引擎。它不是一个完整的搜索应用程序,而是为你的应用程序提供索引和搜索功能。lucene 能够为文本类型的数据建立索引,所以你只要能把你要索引的数据格式转化的 阅读全文
posted @ 2018-03-10 22:51 hanxue1122 阅读(649) 评论(0) 推荐(0) 编辑
摘要:在开发中,网络请求和json解析使用的频率是一样高的,因为网络请求返回来的一般都是json(当然还有xml),这里讨论的是json,网络请求的工具类前面我的博客已经写过了,这里给出网址:http://blog.csdn.net/u014727709/article/details/53389840 阅读全文
posted @ 2018-03-10 22:30 hanxue1122 阅读(3113) 评论(0) 推荐(0) 编辑
摘要:概述 目前几乎很多大型网站及应用都是分布式部署的,分布式场景中的数据一致性问题一直是一个比较重要的话题。分布式的CAP理论告诉我们“任何一个分布式系统都无法同时满足一致性(Consistency)、可用性(Availability)和分区容错性(Partition tolerance),最多只能同时 阅读全文
posted @ 2018-03-10 22:25 hanxue1122 阅读(207) 评论(0) 推荐(0) 编辑
摘要:JWT是一种用于双方之间传递安全信息的简洁的、URL安全的表述性声明规范。JWT作为一个开放的标准(RFC 7519),定义了一种简洁的,自包含的方法用于通信双方之间以Json对象的形式安全的传递信息。因为数字签名的存在,这些信息是可信的,JWT可以使用HMAC算法或者是RSA的公私秘钥对进行签名。 阅读全文
posted @ 2018-03-10 22:07 hanxue1122 阅读(249) 评论(0) 推荐(0) 编辑
摘要:本篇是java数据结构与算法的第4篇,从本篇开始我们将来了解栈的设计与实现,以下是本篇的相关知识点: 栈的抽象数据类型 顺序栈的设计与实现 链式栈的设计与实现 栈的应用 栈的抽象数据类型 栈是一种用于存储数据的简单数据结构,有点类似链表或者顺序表(统称线性表),栈与线性表的最大区别是数据的存取的操作 阅读全文
posted @ 2018-03-09 18:19 hanxue1122 阅读(390) 评论(0) 推荐(0) 编辑
摘要:2. 实现思路 递归:从尾部开始处理 非递归:从头部开始处理 阅读全文
posted @ 2018-03-09 13:35 hanxue1122 阅读(1536) 评论(0) 推荐(0) 编辑
摘要:一、jdk中equals和hashcode的定义和源码进行分析 1、java.lang.Object中对equals()方法的定义 java.lang.Object中对hashCode()方法的定义 2、java.lang.Object中对equals()方法和hashCode()源码和String 阅读全文
posted @ 2018-03-09 11:23 hanxue1122 阅读(3176) 评论(0) 推荐(2) 编辑
摘要:什么是分布式系统 之前我有篇文章已经简单介绍了分布式通信,有兴趣的朋友可以去看看: 大型网站系统架构实践(二)分布式模块之间的通信 那么今天我详细的说下我对java分布式系统通信的理解 1.集群模式,将相同应用模块部署多份 2.业务拆分模式,将业务拆分成多个模块,并分别部署 3.存储分布式 由于分布 阅读全文
posted @ 2018-03-08 09:38 hanxue1122 阅读(243) 评论(0) 推荐(0) 编辑
摘要:本文参考 jvm参数设置大全:http://www.cnblogs.com/marcotan/p/4256885.html 堆内存分配及gc:http://www.cnblogs.com/weiguo21/p/5195460.html 在一个java应用启动时,我们可以配置其jvm的启动参数,如: 阅读全文
posted @ 2018-03-06 17:19 hanxue1122 阅读(1263) 评论(0) 推荐(0) 编辑
摘要:(1)选择最有效率的表名顺序(只在基于规则的优化器中有效): ORACLE的解析器按照从右到左的顺序处理FROM子句中的表名,FROM子句中写 在最后的表(基础表 driving table)将被最先处理,在FROM子句中包含多个表的 情况下,你必须选择记录条数最少的表作为基础表。如果有3个以上的表 阅读全文
posted @ 2018-03-06 14:19 hanxue1122 阅读(216) 评论(0) 推荐(0) 编辑
摘要:一、事务简介 事务管理是企业级应用程序开发中必不可少的技术, 用来确保数据的完整性和一致性. 事务就是一系列的动作, 它们被当做一个单独的工作单元. 这些动作要么全部完成, 要么全部不起作用 事务的四个关键属性(ACID) 原子性(atomicity): 事务是一个原子操作, 由一系列动作组成. 事 阅读全文
posted @ 2018-03-06 14:14 hanxue1122 阅读(268) 评论(0) 推荐(0) 编辑
摘要:本篇讲诉数据库中事务的四大特性(ACID),并且将会详细地说明事务的隔离级别。 如果一个数据库声称支持事务的操作,那么该数据库必须要具备以下四个特性: ⑴ 原子性(Atomicity) 原子性是指事务包含的所有操作要么全部成功,要么全部失败回滚,这和前面两篇博客介绍事务的功能是一样的概念,因此事务的 阅读全文
posted @ 2018-03-05 15:21 hanxue1122 阅读(225) 评论(0) 推荐(0) 编辑
摘要:1.查看实时日志: tail -f nohup.out 2.分页查看所有日志: cat nohup.out | more 4.分页查看前N行日志: tail -n 1000 nohup.out | more 5.查看实时日志并检索关键字: tail -f nohup.out | grep "关键字" 阅读全文
posted @ 2018-03-05 14:47 hanxue1122 阅读(5864) 评论(0) 推荐(1) 编辑
摘要:建造者模式(Builder),将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。 类图 描述 Builder:定义一个建造者抽象类,以规范产品对象的各个组成部分的建造。这个接口规定要实现对象的哪些部分的创建,并不涉及具体的对象部件的创建。 ConcreteBuilder:继承 阅读全文
posted @ 2018-03-05 14:11 hanxue1122 阅读(207) 评论(0) 推荐(0) 编辑
摘要:总结 以上就是工厂模式的基本实现和详细说明。包括了简单工厂模式、工厂方法模式、抽象工厂模式。我们可以基于需求来选择合适的工厂模式 基本概念:为创建对象提供过渡接口,以便将创建对象的具体过程屏蔽隔离起来,达到提高灵活性的目的。 分为三类: 简单工厂模式Simple Factory:不利于产生系列产品; 阅读全文
posted @ 2018-03-05 14:04 hanxue1122 阅读(182) 评论(0) 推荐(0) 编辑
摘要:Java的三种代理模式 1.代理模式 代理(Proxy)是一种设计模式,提供了对目标对象另外的访问方式;即通过代理对象访问目标对象.这样做的好处是:可以在目标对象实现的基础上,增强额外的功能操作,即扩展目标对象的功能.这里使用到编程中的一个思想:不要随意去修改别人已经写好的代码或者方法,如果需改修改 阅读全文
posted @ 2018-03-05 13:16 hanxue1122 阅读(244) 评论(0) 推荐(0) 编辑
摘要:基本概念:装饰模式(Decorator),动态地给一个对象添加一些额外的职责,就增加功能来说,装饰模式比生成子类更为灵活。 UML结构图 上图是Decorator 模式的结构图,让我们可以进行更方便的描述: Component是定义一个对象接口,可以给这些对象动态地添加职责。 ConcreteCom 阅读全文
posted @ 2018-03-05 11:14 hanxue1122 阅读(167) 评论(0) 推荐(0) 编辑
摘要:Java内存管理:深入Java内存区域 Java与C++之间有一堵由内存动态分配和垃圾收集技术所围成的高墙,墙外面的人想进去,墙里面的人却想出来。 概述: 对于从事C和C++程序开发的开发人员来说,在内存管理领域,他们既是拥有最高权力的皇帝,又是从事最基础工作的劳动人民—既拥有每一个对象的"所有权" 阅读全文
posted @ 2018-03-05 10:12 hanxue1122 阅读(135) 评论(0) 推荐(0) 编辑
摘要:三:面向对象:★★★★★ 类 匿名对象使用场景: 1:当对方法只进行一次调用的时候,可以使用匿名对象。 2:当对象对成员进行多次调用时,不能使用匿名对象。必须给对象起名字。 类中怎么没有定义主函数呢? 注意:主函数的存在,仅为该类是否需要独立运行,如果不需要,主函数是不用定义的。 主函数的解释:保证 阅读全文
posted @ 2018-03-05 10:11 hanxue1122 阅读(215) 评论(0) 推荐(1) 编辑
摘要:封 装(面向对象特征之一):是指隐藏对象的属性和实现细节,仅对外提供公共访问方式。 好处:将变化隔离;便于使用;提高重用性;安全性。 封装原则:将不需要对外提供的内容都隐藏起来,把属性都隐藏,提供公共方法对其访问。 this:代表对象。就是所在函数所属对象的引用。 this到底代表什么呢?哪个对象调 阅读全文
posted @ 2018-03-05 09:37 hanxue1122 阅读(133) 评论(0) 推荐(0) 编辑
摘要:继 承(面向对象特征之一) 1:成员变量。 当子父类中出现一样的属性时,子类类型的对象,调用该属性,值是子类的属性值。 如果想要调用父类中的属性值,需要使用一个关键字:super This:代表是本类类型的对象引用。 Super:代表是子类所属的父类中的内存空间引用。 注意:子父类中通常是不会出现同 阅读全文
posted @ 2018-03-05 09:19 hanxue1122 阅读(161) 评论(0) 推荐(0) 编辑
摘要:接 口:★★★★★ 抽象类和接口的区别: 1、抽象类可以继承,而且必须是单继承,接口可以实现,而且可以多实现 2、抽象类中可以定义非抽象的方法,子类可以直接拿来使用。接口里面都是抽象的方法,子类必须实现 3、抽象类是is a关系和人接口是like a关系 4、抽象类的成员修饰符可以自定义 1:是用关 阅读全文
posted @ 2018-03-01 17:57 hanxue1122 阅读(125) 评论(0) 推荐(0) 编辑
摘要:多 态★★★★★(面向对象特征之一):函数本身就具备多态性,某一种事物有不同的具体的体现。 体现:父类引用或者接口的引用指向了自己的子类对象。//Animal a = new Cat();父类可以调用子类中覆写过的(父类中有的方法) 多态的好处:提高了程序的扩展性。继承的父类或接口一般是类库中的东西 阅读全文
posted @ 2018-03-01 17:48 hanxue1122 阅读(187) 评论(0) 推荐(0) 编辑
摘要:一、synchronized synchronized关键字可以用于声明方法,也可以用来声明代码块,下面分别看一下具体的场景(摘抄自《大型网站系统与Java中间件实践》) 案例一:其中foo1和foo2是SynchronizedDemo1类的两个静态方法。在不同的线程中,这两个方法的调用是互斥的,不 阅读全文
posted @ 2018-03-01 17:33 hanxue1122 阅读(141) 评论(0) 推荐(0) 编辑
摘要:http://blog.csdn.net/zhangerqing/article/details/43057799 https://www.cnblogs.com/dengzz/p/5688021.html 阅读全文
posted @ 2018-03-01 17:19 hanxue1122 阅读(393) 评论(0) 推荐(0) 编辑
摘要:一、ThreadLocal基础知识 ThreadLocal是线程的一个本地化对象,或者说是局部变量。当工作于多线程中的对象使用ThreadLocal维护变量时,ThreadLocal为每个使用该变量的线程分配一个独立的变量副本。所以每一个线程都可以独立地改变自己的副本,而不会影响其他线程所对应的副本 阅读全文
posted @ 2018-03-01 17:18 hanxue1122 阅读(206) 评论(0) 推荐(0) 编辑
摘要:一、Future Future和Callable基本是成对出现的,Callable负责产生结果,Future负责获取结果。 1、Callable接口类似于Runnable,只是Runnable没有返回值。 2、Callable任务除了返回正常结果之外,如果发生异常,该异常也会被返回,即Future可 阅读全文
posted @ 2018-03-01 16:58 hanxue1122 阅读(265) 评论(0) 推荐(0) 编辑
摘要:1. 什么是阻塞队列 阻塞队列(BlockingQueue)是 Java 5 并发新特性中的内容,阻塞队列的接口是 java.util.concurrent.BlockingQueue,它提供了两个附加操作:当队列中为空时,从队列中获取元素的操作将被阻塞;当队列满时,向队列中添加元素的操作将被阻塞。 阅读全文
posted @ 2018-03-01 16:49 hanxue1122 阅读(321) 评论(0) 推荐(0) 编辑
摘要:一、什么是CopyOnWrite容器 CopyOnWrite容器即写时复制的容器。通俗的理解是当我们往一个容器添加元素的时候,不直接往当前容器添加,而是先将当前容器进行Copy,复制出一个新的容器,然后新的容器里添加元素,添加完元素之后,再将原容器的引用指向新的容器。这样做的好处是我们可以对Copy 阅读全文
posted @ 2018-03-01 16:24 hanxue1122 阅读(179) 评论(0) 推荐(0) 编辑
摘要:一、 背景 线程是稀缺资源,如果无限制的创建,不仅会消耗系统资源,还会降低系统的稳定性,合理的使用线程池可以对线程进行统一的分配、调优和监控,并有以下好处: 第一:降低资源消耗。通过重复利用已创建的线程降低线程创建和销毁造成的消耗。 第二:提高响应速度。当任务到达时,任务可以不需要等到线程创建就能立 阅读全文
posted @ 2018-03-01 15:54 hanxue1122 阅读(571) 评论(0) 推荐(0) 编辑
摘要:周末看到一个用jstack查看死锁的例子。昨天晚上总结了一下jstack(查看线程)、jmap(查看内存)和jstat(性能分析)命令。供大家参考 1.Jstack 1.1 jstack能得到运行java程序的java stack和native stack的信息。可以轻松得知当前线程的运行情况。如下 阅读全文
posted @ 2018-03-01 15:16 hanxue1122 阅读(414) 评论(0) 推荐(0) 编辑
摘要:悲观锁(Pessimistic Lock), 顾名思义,就是很悲观,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会block直到它拿到锁。传统的关系型数据库里边就用到了很多这种锁机制,比如行锁,表锁等,读锁,写锁等,都是在做操作之前先上锁。 乐观锁(Op 阅读全文
posted @ 2018-03-01 14:46 hanxue1122 阅读(274) 评论(0) 推荐(0) 编辑
摘要:1、返回当前线程的名称:Thread.currentThread.getName(); 2、Thread的名称由Thread+编号定义,编号从0开始 3、线程要运行的代码统一都放到了run方法下面 4、线程要运行必须要通过类中指定的方法开启。Start()(启动后就多了一条执行路径) 注意:star 阅读全文
posted @ 2018-03-01 14:37 hanxue1122 阅读(325) 评论(0) 推荐(1) 编辑
摘要:HashMap的工作原理是近年来常见的Java面试题。几乎每个Java程序员都知道HashMap,都知道哪里要用HashMap,知道Hashtable和HashMap之间的区别,那么为何这道面试题如此特殊呢?是因为这道题考察的深度很深。这题经常出现在高级或中高级面试中,甚至会要求你实现HashMap 阅读全文
posted @ 2018-03-01 12:01 hanxue1122 阅读(436) 评论(1) 推荐(0) 编辑
摘要:多线程下[HashMap]的问题: 1、多线程put操作后,get操作导致死循环。2、多线程put非NULL元素后,get操作得到NULL值。3、多线程put操作,导致元素丢失。 本次主要关注[HashMap]-死循环问题。 为何出现死循环? 为何出现死循环? 大家都知道,HashMap采用链表解决 阅读全文
posted @ 2018-03-01 11:43 hanxue1122 阅读(267) 评论(0) 推荐(0) 编辑
摘要:一、背景: 线程不安全的HashMap 因为多线程环境下,使用Hashmap进行put操作会引起死循环,导致CPU利用率接近100%,所以在并发情况下不能使用HashMap。 效率低下的HashTable容器 HashTable容器使用synchronized来保证线程安全,但在线程竞争激烈的情况下 阅读全文
posted @ 2018-03-01 11:21 hanxue1122 阅读(176) 评论(0) 推荐(0) 编辑
摘要:一、概念 TreeMap是基于红黑树结构实现的一种Map,要分析TreeMap的实现首先就要对红黑树有所了解。 要了解什么是红黑树,就要了解它的存在主要是为了解决什么问题,对比其他数据结构比如数组,链表,Hash表等树这种结构又有什么优点。 1.二叉查询树、红黑树介绍、 1.数组,优点:(1)随机访 阅读全文
posted @ 2018-03-01 10:43 hanxue1122 阅读(364) 评论(1) 推荐(0) 编辑

点击右上角即可分享
微信分享提示