![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java基础
文章平均质量分 61
s20082043
这个作者很懒,什么都没留下…
展开
-
Tomcat中CATALINA_HOME和CATALINA_BASE的区别
The description below uses the variable name $CATALINA_BASE to refer the base directory against which most relative paths are resolved. If you have not configured Tomcat for multiple instances by se原创 2015-03-06 11:09:29 · 635 阅读 · 0 评论 -
Java运行时异常
java运行时异常是可能在java虚拟机正常工作时抛出的异常。java提供了两种异常机制。一种是运行时异常(RuntimeExepction),一种是检查式异常(checked execption)。检查式异常:我们经常遇到的IO异常及sql异常就属于检查式异常。对于这种异常,java编译器要求我们必须对出现的这些异常进行catch 所以 面对这种异常不管我们是否愿意,只能自己去写原创 2015-03-02 19:42:27 · 438 阅读 · 0 评论 -
JAVA多线程 之 CopyOnWriteArrayList和CopyOnWriteArraySet
当多线程高并发的情况下,传统的ArrayList原创 2014-09-18 15:23:11 · 377 阅读 · 0 评论 -
Java 排序算法
最近重温排序算法,对插入排序 希尔排序 选择排序 堆排序 快速排序 归并排序 重新学习了一下,并根据网上的资料和自己的测试 代码原创 2015-01-10 17:59:06 · 304 阅读 · 0 评论 -
java 基础
1 java修饰符java中访问修饰符public、private、protecte、default的意义讲解:public(接口访问权限): Java语言中访问限制最宽的修饰符,一般称之为“公共的”。被其修饰的类、属性以及方法不仅可以跨类访问,而且允许跨包(package)访问。private(无法访问): Java语言中对访问权限限制的最窄的修饰符,一般称之为“私有的”。原创 2015-01-30 10:30:18 · 414 阅读 · 0 评论 -
判断二叉树是不是平衡二叉树
平衡树: 平衡树,即平衡二叉树,具有以下性质:它是一颗空树或者它的左右两个子树的高度差的绝对值不超过1,并且左右子树都是平衡二叉树。 如图: 判断是不是二叉树: 思路一:通过算出二叉树每个节点左右两棵子树的高度,然后比较高度的值转载 2014-12-26 20:05:19 · 292 阅读 · 0 评论 -
java iterator与iterable的区别
用Iterator模式实现遍历集合Iterator模式是用于遍历集合类的标准访问方法。它可以把访问逻辑从不同类型的集合类中抽象出来,从而避免向客户端暴露集合的内部结构。例如,如果没有使用Iterator,遍历一个数组的方法是使用索引:for(int i=0; i而访问一个链表(LinkedList)又必须使用while循环:while((e=e.next())!=null) {转载 2015-01-12 09:38:40 · 877 阅读 · 0 评论 -
布隆过滤器
布隆过滤器 (Bloom Filter)是由Burton Howard Bloom于1970年提出,它是一种space efficient的概率型数据结构,用于判断一个元素是否在集合中。在垃圾邮件过滤的黑白名单方法、爬虫(Crawler)的网址判重模块中等等经常被用到。哈希表也能用于判断元素是否在集合中,但是布隆过滤器只需要哈希表的1/8或1/4的空间复杂度就能完成同样的问题。布隆过滤器可以插入元转载 2014-12-18 11:27:32 · 357 阅读 · 0 评论 -
回调函数例子
转自(http://blog.csdn.net/xiaanming/article/details/17483273)所谓回调:就是A类中调用B类中的某个方法C,然后B类中反过来调用A类中的方法D,D这个方法就叫回调方法,这样子说你是不是有点晕晕的,其实我刚开始也是这样不理解,看了人家说比较经典的回调方式:Class A实现接口CallBack callback——背景1cla转载 2015-01-06 16:04:26 · 362 阅读 · 0 评论 -
斐波那契数列
斐波纳契数列,又称黄金分割数列,指的是这样一个数列:1、1、2、3、5、8、13、21、……在数学上,斐波纳契数列以如下被以递归的方法定义:F0=0,F1=1,Fn=F(n-1)+F(n-2)(n>=2,n∈N*)。以下是Java代码实现(递归与递推两种方式):[java] view plaincopyimport java.util.Sca转载 2014-11-25 21:24:38 · 311 阅读 · 0 评论 -
求二叉树的深度和宽度
二叉树的深度:二叉树的根结点所在的层数为1,根结点的孩子结点所在的层数为2,以此下去。深度是指所有结点中最深的结点所在的层数。 二叉树的宽度:所有深度中含有的最多的子叶数public static int getHeight(BiNode head) { int deep = 0; if(head != null) {转载 2014-11-26 21:54:30 · 362 阅读 · 0 评论 -
java多线程 之 CompletionService与ExecutorCompletionService
CompletionService 接口:将生产新的异步任务和生成的结果原创 2014-10-04 20:35:35 · 516 阅读 · 0 评论 -
CAP BASE ACID
1. CAP 一致性(Consistency)可用性(Availability)分区容忍性(Partitiontolerance)CAP原理指的是,这三个要素最多只能同时实现两点,不可能三者兼顾。这是Brewer教授于2000年提出的,后人也论证了CAP理论的正确性。 l 一致性(Consistency) : 对于转载 2014-11-17 14:26:09 · 335 阅读 · 0 评论 -
Java Map排序
1 按照Key排序: Java类库中存在相应的实现,如:TreeMap 不必多说,由于TeeMap在修改和删除之后需要重新排序,要消耗一些性能。当然可以考虑,先使用HashMap进行进行创建和修改操作,如果需要排序,再调用 new TreeMap(hashMap) 来根据Key进行排序2 按照Value排序: Java类库中没有相应的实现,可自己实现如下原创 2015-03-27 13:37:51 · 325 阅读 · 0 评论 -
Arrays.asList()测试
今天对Arrays.asList()方法做了测试:public class Test01 {public static void main(String[] args) {List _list = Arrays.asList(new String[]{"1","2","3"}) ;String _str = _list.remove(0) ;System.out.println原创 2015-03-30 19:50:21 · 365 阅读 · 0 评论 -
Log4j按级别输出日志到不同文件配置分析
关于LOG4J 按照级别输出日志,并按照级别输出到不同文件中的说法有很多, 网上贴的最多的log4j.properties的设置是这样的[java] view plaincopylog4j.rootLogger=info,stdout,info,debug,error log4j.appender.stdout=org.apache.log4j转载 2015-03-18 19:06:33 · 352 阅读 · 0 评论 -
单链表是否存在环及相关操作
给定一个单链表,1 判断该连表是否存在环2 如何知道环的长度3 如何找到环的连接点4 连表的长度 定义一个节点:public class Node {public String value ;public Node next ;public String getValue() {return value;}public void setV原创 2016-03-07 10:54:33 · 343 阅读 · 0 评论 -
Java内部类的访问调用
从Java1.1开始引入了内部类以来,它就引起了人们的激烈争论。其实任何优秀的语言特性用得不好就是滥用,内部类用得不好就会导致代码像迷宫一样,导致出现毫无重用的综合征。1、内部类分为成员内部类、静态嵌套类、方法内部类、匿名内部类。几种内部类的共性:A、内部类仍然是一个独立的类,在编译之后会内部类会被编译成独立的.class文件,但是前面冠以外部类的类命和$符号。B、内部类不能用转载 2015-06-24 13:07:11 · 467 阅读 · 0 评论 -
Java随机生成6位数字
生成6位随机数(不会是5位或者7位,仅只有6位):[java] view plaincopyprint?System.out.println((int)((Math.random()*9+1)*100000)); 同理,生成5位随机数:[java] view plaincopyprin原创 2015-05-04 16:34:03 · 68063 阅读 · 4 评论 -
构造器的调用顺序
构造器是OOP的重要组成部分,很多人认为它很容易。只不过是new了一个对象而已。而think in java的作者却告诉我们,其实这并不容易。先看下面这个例子。在你没看结果之前,你觉得你的答案是对的么。[java] view plaincopypackage com.tudou.t1; class Meal { M转载 2015-04-21 19:28:03 · 358 阅读 · 0 评论 -
Windows上安装Git和TortoiseGit
1 下载winodws版本Git 并安装和设置环境变量2 下载ToroiseGit 并安装3 找一个文件夹做仓库: 注:请新建一个空的文件夹作为仓库,否则会出现如下提示: 3.1)创建空的文件夹E:\git 进入文件夹git 然后右键选择 "Git Create repository here ..." 弹出如下提示框 注:如果需要建立 多个原创 2015-04-20 18:01:28 · 527 阅读 · 0 评论 -
事务隔离级别
脏读、不能重复读、虚读(又叫幻读)脏读:如果一个事务对数据进行了更新,但事务还没有提交,另一个事务就可以“看到”该事务没有提交的更新结果。这样造成的问题是,如果第一个事务回滚,那么第二个事务在此之前所“看到”的数据就是一笔脏数据。不可重复读:指同个事务在整个事务过程中对同一笔数据进行读取,每次读取结果都不同。如果事务1在事务2的更新操作之前读取一次数据,在事务2的更新操作之后再读取转载 2014-09-01 09:56:29 · 398 阅读 · 0 评论 -
Java实现字符数组单词反转
今天笔试时遇到一个题目: 有一段英文用空格隔开,不包含标点符号,如: what are you doing 需输出格式如下doing you are what。要求只能借助定长的内存。 答题的时候一时不知从何下手,然后就用到了 StringBuilder和Stack 虽然能实现输出结果但是却用到了不定长度的内存空间,自然不符合要求。于是下来百度了一番,发现大体思原创 2015-04-07 22:15:06 · 753 阅读 · 0 评论 -
No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK?
使用Maven中的maven-build来本地调试项目,启动后在console出现如下错误信息:No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK?解决办法:eclipse中windows->Preferences->Java->Install原创 2015-04-22 14:26:04 · 425 阅读 · 0 评论 -
-Dmaven.multiModuleProjectDirectory system propery is not set. Check $M2_HOME environment variable a
eclipse中使用maven插件的时候,运行run as maven build的时候报错-Dmaven.multiModuleProjectDirectory system propery is not set. Check $M2_HOME environment variable and mvn script match. 可以设一个环境变量M2_HOME指向你的m转载 2015-04-22 14:26:24 · 939 阅读 · 0 评论 -
String.format()方法使用
在使用String.format() 来处理long的时候:String.format("处理id[%l]的结果[%b]."但运行有错,抛java.util.UnknownFormatConversionException,查了一下才知道,原来%d是包括了int,long,byte等等类型了,改为String.format("处理id[%d]的结果[%b]."就行了原创 2015-04-03 15:50:02 · 669 阅读 · 0 评论 -
静态方法的同步测试
面试时被问到:一个类包含两个被synchronized 修饰的static方法,是否会出现不同步的状态,一时没搞想明白,张口就说了句:会出现不同步的状态。先做测试如下:public class Test01 {private static int i = 0 ;public synchronized static void addI(){i++ ;System.out.pr原创 2015-03-18 19:57:08 · 282 阅读 · 0 评论 -
java RandomAccessFile
RandomAccessFileRandomAccessFile是用来访问那些保存数据记录的文件的,你就可以用seek( )方法来访问记录,并进行读写了。这些记录的大小不必相同;但是其大小和位置必须是可知的。但是该类仅限于操作文件。RandomAccessFile不属于InputStream和OutputStream类系的。实际上,除了实现DataInput和DataOutput接转载 2014-10-07 15:29:11 · 280 阅读 · 0 评论 -
闭锁CountDownLatch和栅栏CyclicBarrier
闭锁:一个同步辅助类,在完成一组正在其他线程中执行的操作之前,它允许一个或多个线程一直等待。即,一组线程等待某一事件发生,事件没有发生前,所有线程将阻塞等待;而事件发生后,所有线程将开始执行;闭锁最初处于封闭状态,当事件发生后闭锁将被打开,一旦打开,闭锁将永远处于打开状态。 闭锁CountDownLatch唯一的构造方法CountDownLatch(int count),当在闭锁上调原创 2014-09-05 08:41:02 · 495 阅读 · 0 评论 -
Collections.EMPTY_LIST和Collections.emptyList()使用
1.背景在某些情况下,我们经常需要发挥一个空的集合对象,比如说在数据查询时,并不需要发挥一个NULL或是异常,那么就可以返回一个空的集合对象。JDK提供了两个方式来返回集合对象,那么两者有何区别呢?那就看代码吧!2.源码解析 Java代码 //EMPTY_LIST 是Collections定义的一个静态属性,是一个类变量,可以直接返回使用转载 2014-09-04 14:19:11 · 1163 阅读 · 0 评论 -
TreeMap学习
TreeMap 类不仅实现了Map接口,还实现了Map接口的子接口java.util.SortedMap。由TreeMap类实现的Map集合,不允许键对象为 null,因为集合中的映射关系是根据键对象按照一定顺序排列的,TreeMap类通过实现SortedMap接口得到的方法如下所示。方法名称转载 2014-07-31 19:40:26 · 337 阅读 · 0 评论 -
知识点
负载均衡:lvs nginx haproxy比较json转换:原创 2014-07-31 16:30:01 · 299 阅读 · 0 评论 -
Jackson、JSON-lib、Gson性能对比
近日做一些性能优化工作,在挑选JSON类库时,发现除了一般常用的JSON-lib外,还有一款号称性能最快的JSON处理器Jackson,于是用上了刚学会的JMeter,对这两个类库进行了简单的性能对比。 Jackson:http://jackson.codehaus.org/JSON-lib:http://json-lib.sourceforge.net/Gson:转载 2014-07-31 16:28:22 · 385 阅读 · 0 评论 -
一致性 hash 算法
一致性 hash 算法( consistent hashing )张亮consistent hashing 算法早在 1997 年就在论文 Consistent hashing and random trees 中被提出,目前在cache 系统中应用越来越广泛;1 基本场景比如你有 N 个 cache 服务器(后面简称 cache ),那么如何将一个对象 object 映射到 N转载 2014-07-31 11:11:01 · 395 阅读 · 0 评论 -
memcached
这里收集了经常被问到的关于memcached的问题memcached是怎么工作的?memcached最大的优势是什么?memcached和MySQL的query cache相比,有什么优缺点?memcached和服务器的local cache(比如PHP的APC、mmap文件等)相比,有什么优缺点?memcached的cache机制是怎样的?memcached如何实现冗余机制?原创 2014-07-31 10:59:05 · 262 阅读 · 0 评论 -
java动态代理
代理:设计模式代理是一种常用的设计模式,其目的就是为其他对象提供一个代理以控制对某个对象的访问。代理类负责为委托类预处理消息,过滤消息并转发消息,以及进行消息被委托类执行后的后续处理。图 1. 代理模式 为了保持行为的一致性,代理类和委托类通常会实现相同的接口,所以在访问者看来两者没有丝毫的区别。通过代理类这中间一层,能有效控制对委托类对象的直接访问,也可以很好地隐转载 2014-08-04 17:41:08 · 426 阅读 · 0 评论 -
Gson操作Map
json字符串转化成Map对象原创 2014-06-22 18:23:33 · 644 阅读 · 0 评论 -
Java设计模式之生产者消费者模式
对于多线程程序来说,不管任何编程语言,生产者和消费者模型都是最经典的。就像学习每一门编程语言一 样,Hello World!都是最经典的例子。 实际上,准确说应该是“生产者-消费者-仓储”模型,离开了仓储,生产者消费者模型就显得没有说服力了。 对于此模型,应该明确一下几点: 1、生产者仅仅在仓储未满时候生产,仓满则停止生产。 2、消费者仅仅在仓储有产品时候才转载 2014-07-07 23:12:30 · 476 阅读 · 0 评论 -
java中io各种流的关闭顺序
还是先看APIvoidclose() Closes this stream and releases any system resources associated with it.closevoid close() throws IOExceptionCloses this stre转载 2014-07-07 23:10:42 · 669 阅读 · 0 评论 -
枚举
EnumSetEnumMap原创 2014-05-30 10:51:05 · 487 阅读 · 0 评论