
Java基础
Java基础,Java 提供了丰富的集合类,如 List、Set、Map 等,用于存储和操作数据。本教程将深入讲解集合框架的使用方法、区别和适用场景,帮助你选择合适的数据结构来解决实际问题。
代老师的编程课
去哪儿网资深架构师,前美团技术专家,16年Java开发经验,MiniTomcat实战课程作者。
展开
-
多线程循环打印abc
import java.util.concurrent.CountDownLatch;public class PrintXYZ { private CountDownLatch xCount = new CountDownLatch(1); private CountDownLatch yCount = new CountDownLatch(1); private CountDownLatch zCount = new CountDownLatch(1); publ.原创 2021-01-05 21:48:51 · 455 阅读 · 0 评论 -
我使用DSL编写SQL的一个Java实现
1.导读什么是DSL?领域特定语言(Domain Specific language)通常被定义为一种特别针对某类特殊问题的计算机语言,它不打算解决其领域外的问题。了解更多2.你使用JDBC来 存取 数据时,怎么处理你的SQL2.1 对于一个固定条件的查询,我们会使用PreparedStatement来实现。就像下面这个例子,只需要DateOfBirth一个固定条件来查询。转载 2013-10-28 20:52:25 · 3744 阅读 · 0 评论 -
Java 面试题问与答:编译时与运行时
在开发和设计的时候,我们需要考虑编译时,运行时以及构建时这三个概念。理解这几个概念可以更好地帮助你去了解一些基本的原理。下面是初学者晋级中级水平需要知道的一些问题。Q.下面的代码片段中,行A和行B所标识的代码有什么区别呢?12345678910111213转载 2013-10-14 20:05:04 · 792 阅读 · 0 评论 -
提升你的Java应用性能:改善数据处理
本文由 ImportNew - 唐尤华 翻译自 deepakgaikwad。如需转载本文,请先参见文章末尾处的转载要求。许多应用程序在压力测试阶段或在生产环境中都会遇到性能问题。如果我们看一下性能问题背后的原因,会发现很多是由数据处理不当造成。数据处理在应用面对大数据量时是非常关键的。这里有一些实用的数据处理技巧可以帮助更好地提升Java应用程序性能。减少数据传输在任何Ja转载 2013-10-14 19:56:14 · 583 阅读 · 0 评论 -
JDocumentEditor
package infonode;/** * * @author sony *///JDocumentEditor.javaimport java.awt.*;import java.awt.event.*;import java.io.File;import java.io.IOException;import java.util.logging.Level;import转载 2013-09-24 12:18:28 · 804 阅读 · 0 评论 -
JAVA缓存的实现
缓存可分为二大类: 一、通过文件缓存,顾名思义文件缓存是指把数据存储在磁盘上,不管你是以XML格式,序列化文件DAT格式还是其它文件格式; 二、内存缓存,也就是实现一个类中静态Map,对这个Map进行常规的增删查. 下面为一个简单的缓存代码 Java代码 package lhm.hcy.guge.frameset.cache; im转载 2013-10-09 17:46:03 · 865 阅读 · 0 评论 -
Lock Less Java Object Pool
It has been a while since I wrote anything, I have been busy with my new job that involves doing some interesting work on performance tuning. One of the challenges is to reduce object creation during转载 2013-10-08 21:13:05 · 1432 阅读 · 0 评论 -
使用 JAVA 中的动态代理实现数据库连接池
作者通过使用 JAVA 中的动态代理实现数据库连接池,使使用者可以以普通的 jdbc 连接的使用习惯来使用连接池。 评论:刘冬 (winter.lau@163.com), 珠海市创我科技发展有限公司软件工程师2002 年 12 月 05 日内容数据库连接池在编写应用服务是经常需要用到的模块,转载 2013-10-07 22:39:03 · 730 阅读 · 0 评论 -
多线程实现的Java爬虫程序
以下是一个Java爬虫程序,它能从指定主页开始,按照指定的深度抓取该站点域名下的网页并维护简单索引。参数:private static int webDepth = 2;//爬虫深度。主页的深度为1,设置深度后超过该深度的网页不会抓取。 private int intThreadNum = 10;//线程数。开启的线程数。 抓取时也会在程序源文件目录下生成一个rep转载 2013-09-29 18:20:48 · 1028 阅读 · 0 评论 -
Java网络爬虫的实现
记得在刚找工作时,隔壁的一位同学在面试时豪言壮语曾实现过网络爬虫,当时的景仰之情犹如滔滔江水连绵不绝。后来,在做图片搜索时,需要大量的测试图片,因此萌生了从Amazon中爬取图书封面图片的想法,从网上也吸取了一些前人的经验,实现了一个简单但足够用的爬虫系统。AD:2013云计算架构师峰会精彩课程曝光记得在刚找工作时,隔壁的一位同学在面试时豪言壮语曾实现过网络转载 2013-09-29 18:18:39 · 996 阅读 · 2 评论 -
Java集合类
数组是一种很常见的数据结构,开始接触编程的时候多数程序都和数组相关。刚开始接触Java时也是一直使用数组写一些程序,后来越来越觉得数组这东西没法满足需求了,这时一位“前辈”对我说了一句:不会用集合类就等于没学过Java。然后才知道有集合类。 想想已经是3、4年前的事了,时间如白驹过隙啊。 什么时候数组会显得力不从心,没法满足需求,需要集合类呢?不知道具体数据长度转载 2013-08-19 22:50:45 · 801 阅读 · 0 评论 -
ArrayList removeRange方法分析
《ArrayList原码分析》一文中提到了“为什么removeRange(int fromIndex,int toIndex)是protected的?” 先给出removeRange(int fromIndex,int toIndex)方法的源码(这段代码是干什么的就不再解释了,源码分析一文中已经说明) 1 protected void removeRange(int f转载 2013-08-19 19:37:19 · 1587 阅读 · 0 评论 -
Top 8 Diagrams for Understanding Java
A diagram is sometimes worth 1000 words. The following diagrams are from Java tutorials on Program Creek, they have received the most votes so far. Hopefully, they can help you review what you alrea转载 2013-10-30 08:33:06 · 607 阅读 · 0 评论 -
SoftReference,WeakReference&WeakHashMap
zz http://java.chinaitlab.com/oop/716371.html在JDK1.2以前的版本中,当一个对象不被任何变量引用,那么程序就无法再使用这个对象。也就是说,只有对象处于可触及状态,程序才能使用它。这 就像在日常生活中,从商店购买了某样物品后,如果有用,就一直保留它,否则就把它扔到垃圾箱,由清洁工人收走。一般说来,如果物品已经被扔到垃圾箱,想再 把它捡回来使用就转载 2013-10-23 22:36:16 · 554 阅读 · 0 评论 -
JDBC中驱动加载的过程分析
江苏 无锡 缪小东 本篇从java.sql.Driver接口、java.sql.DriveManager类以及其它开源数据库的驱动类讨论JDBC中驱动加载的全过程以及JDBC的Framework如何做到“可插拔”的细节。 本篇包含了很多部分的内容。如类加载器、本地方法、对象锁、类锁、按功能或者状态分离锁、安全机制,对这些内容没有深入讨论!详情可以继续关注本博转载 2013-07-13 17:20:36 · 2444 阅读 · 0 评论 -
Java 日志缓存机制的实现
本文介绍了 Java 日志机制,并通过扩展日志功能,实现日志缓存。同时,可以动态控制日志信息打印到日志文件的级别,从而提高了日志的灵活性,给产品质量带来更大的帮助。文章主要围绕 MemoryHandler 类和 logging.properties 文件进行扩展,给出了对应的示例代码。0 评论:盛 江涛, 软件工程师, IBM China李 思舒, 软件工程转载 2014-03-17 23:50:33 · 1881 阅读 · 0 评论 -
AOP实践:java.lang.instrument的使用
背景在 rcjp 项目中,需要调用 ASM API(用于字节码处理的开源库)对字节码进行处理,目标是实现对 Java 程序运行时各种对象的动态跟踪,并进一步分析各个对象之间的关系。在此之前,需要考虑如何获取程序运行的入口。首先,我考虑到了自定义类加载器(详情见参考资料),即在程序的 main 入口处,首先加载自定义的类加载器,然后通过反射技术使用这个类加载器加载并调用测试程序。这个转载 2014-02-23 21:22:57 · 688 阅读 · 0 评论 -
JAVA 注解示例 详解
注解(Annotation) 为我们在代码中天界信息提供了一种形式化的方法,是我们可以在稍后某个时刻方便地使用这些数据(通过 解析注解 来使用这些数据)。 注解的语法比较简单,除了@符号的使用以外,它基本上与java的固有语法一致,java内置了三种注解,定义在java.lang包中。 @Override 表示当前方法是覆盖父类的方法。转载 2014-01-16 21:27:58 · 604 阅读 · 0 评论 -
HashMap、HashTable、LinkedHashMap和TreeMap用法和区别
Java为数据结构中的映射定义了一个接口java.util.Map,它有四个实现类,分别是HashMap、HashTable、LinkedHashMap和TreeMap。本节实例主要介绍这4中实例的用法和区别。关键技术剖析:Map用于存储键值对,根据键得到值,因此不允许键重复,值可以重复。l (1)HashMap是一个最常用的Map,它根据键的hashCode值存储数据,根据键可以直转载 2014-03-16 10:03:24 · 776 阅读 · 0 评论 -
Java中private方法能重写吗?
问题:Java中private方法能重写吗?下面是测试代码public class A { private void print() { System.out.println("A"); } public static void main(String[] args) { A a = new B(); a.原创 2014-03-15 17:19:22 · 14566 阅读 · 2 评论 -
2013年ImportNew最受欢迎的10篇文章
Class文件由顺序的8位字节为基础单位构成的二进制流。各个项目严格按照顺序紧凑排列,无分隔符。需要用8位字节以上空间数据项时按照高位在前分割成若干个8位字节存储。只包含2种数据类型:无符号数表无符号数是class文件基本数据类型,以u1,u2,u4,u8分别代表1个字节,2个,4个,8个字节的无符号数。可以用来描述数字、索引引用、数量值、以UTF-转载 2014-01-24 20:32:21 · 737 阅读 · 0 评论 -
Java中的装箱与拆箱
在J2SE5.0后推出了自动装箱和拆箱的功能,以提高我们的开发效率,然而自动装箱和拆箱实际上是通过编译器来支持的(并非语言本身,或者说虚拟机),因而这种支持也隐藏了部分内部实质,再加上某些类的优化(比如Integer里面的缓存等,参看关于缓存节),就更加容易在特定的环境下产生问题,并且如果不知道原来还无法调试。以下先是简单的介绍了编译器对装箱和拆箱的实现,并根据实现简单介绍一下可能会遇到的几个问题转载 2014-02-18 16:28:46 · 618 阅读 · 0 评论 -
hashcode和equals为何要同时重写
浅谈为何要重写 hashcode()与equals() 首先,这两个方法都来自于Object对象,根据API文档查看下原意。(1)public boolean equals(Objectobj),对于任何非空引用值 x 和 y,当且仅当 x 和 y 引用同一个对象时,此方法才返回 true;注意:当此方法被重写时,通常有必要重写 hashCode 方法,以维护 has转载 2014-02-11 19:38:12 · 645 阅读 · 0 评论 -
java泛型的理解
原文是好几年前在公司邮件列表里发的,现在看写的很啰嗦,不管怎样,希望对新手有用。pdf文档可以在:http://www.slideshare.net/hongjiang/ss-13586111不能翻墙也可以在这里下载:http://vdisk.weibo.com/s/AsZQi几年前当Java5还未正式发布的时候,看到过一些人写的介绍Tiger中的新特性,当时对我第一感觉冲击最大的转载 2014-02-10 16:21:30 · 678 阅读 · 0 评论 -
Java注解annotation用法和自定义注解处理器
前言:在J2EE中,注解使得开发更加便利,省去了生成XML文件的过程,在Hibernate实体声明中,可以简简单单的用几个注解就可以免去生成一个XML的文件操作。这里就主要论述一下annotation的用法和自定义注解处理器。当在创建描述符性质的类或接口时,有大量重复性的工作时候,就可以利用注解来实现。基本语法:Java目前包括三种标准注解和四种元注解。元注解主要负责注解其他注解的。...转载 2014-02-24 09:55:46 · 1041 阅读 · 0 评论 -
java,属性覆盖,方法覆盖
class Rootb{int x = 1;public Rootb(int i){}public int getI(){return x;}public void setI(int x){this.x = x;}}class Stemb extends Rootb{private int x =原创 2014-02-22 15:57:25 · 1470 阅读 · 0 评论 -
LinkedHashMap源码分析(基于JDK1.6)
《Java集合类》一文中已经最List的基本操作进行说明,并且比较了ArrayList和LinkedList的效率。本文将进一步解析LinkedList。 LinkedList也和ArrayList一样实现了List接口,但是它执行插入和删除操作时比ArrayList更加高效,因为它是基于链表的。基于链表也决定了它在随机访问方面要比ArrayList逊色一点。 除此之外转载 2013-08-19 19:34:53 · 608 阅读 · 0 评论 -
TreeMap源码分析——基础分析(基于JDK1.6)
常见的数据结构有数组、链表,还有一种结构也很常见,那就是树。前面介绍的集合类有基于数组的ArrayList,有基于链表的LinkedList,还有链表和数组结合的HashMap,今天介绍基于树的TreeMap。 TreeMap基于红黑树(点击查看树、红黑树相关内容)实现。查看“键”或“键值对”时,它们会被排序(次序由Comparable或Comparator决定)。TreeMap的转载 2013-08-19 19:33:22 · 609 阅读 · 0 评论 -
Collections Framework中的算法(之二)
从本篇开始我们讲述Collections中的一些算法的源代码!本篇主要讲述与排序相关的一些方法,如:排序、反序、反序比较器、乱序、最大值和最小值等。 一、头及一些与算法相关的属性package java.util;import java.io.Serializable;import java.io.ObjectOutputStream;import转载 2013-07-12 08:41:03 · 913 阅读 · 0 评论 -
JDK中的动态代理
江苏 无锡 缪小东 写到代理模式这章,不得不提到JDK中的动态代理,它是java语言自身对动态代理的支持,类似于JDK中在java.util包中提供Observable类和Observer接口提供对观察者模式的语言级支持。关于动态代理的好处可以从网络上流行的中用动态代理类实现记忆功能>>、使用JAVA中的动态代理实现数据库连接池>>、通过JAVA的动态代理机制控制事务>> 、用转载 2013-07-12 08:44:18 · 758 阅读 · 0 评论 -
Collections Framework中的算法(之三)--不可变装饰器相关
本篇主要讲述Collections类中的unmodifiable相关的方法!这些方法都有一个共同含义就是使用此方法创建的对象都是不可变的!典型的装饰器模式的应用!下面的几篇都是装饰器模式在Java Collections Framework中的典型应用!同时还简要叙说了如何理解内部类! 12.1装饰器模式基础 装饰器模式是GOF那本书中提到的23个经典设计模转载 2013-07-12 08:41:46 · 861 阅读 · 0 评论 -
Collections Framework中的算法(之一)
江苏 无锡 缪小东 在博客其它文章中提到Java Collections Framework――java中面向对象的数据结构的框架!几乎任何学习java的朋友都要对此包(java.util)非常熟悉。 该框架主要包含接口、实现和算法三部分。在本博客关于FailFast机制的文章中纵向研究了List接口和List的实现。关于算法一点都没有提及。本系列主要讲述该转载 2013-07-12 08:39:28 · 986 阅读 · 0 评论 -
Java类型转换
一些初学JAVA的朋友可能会遇到JAVA的数据类型之间转换的苦恼,例如,整数和float,double型之间的转换,整数和String类型之间的转换,以及处理、显示时间方面的问题等。下面笔者就开发中的一些体会介绍给大家。 我们知道,Java的数据类型分为三大类,即布尔型、字符型和数值型,而其中数值型又分为整型和浮点型;相对于数据类型,Java的变量类型为布尔型boolean;字符型cha转载 2012-02-17 11:43:55 · 609 阅读 · 0 评论 -
Java基础知识 (扫盲)
Java基础方面:1、面向对象的特征有哪些方面 答:主要有以下四方面:1.抽象:抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节。抽象包括两个方面,一是过程抽象,二是数据抽象。2.继承:继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述共性的转载 2013-05-25 18:09:24 · 856 阅读 · 0 评论 -
java 子类继承父类 -- 重写、覆盖
class Foo { public int a; public static final String str = "foo"; public Foo() { a = 3; } public int addFive() { a = a + 5; return原创 2013-06-26 09:42:59 · 705 阅读 · 0 评论 -
jdk源码--整数和字符串间的转换
如果让您亲自动手来来写一个Integer中的toString()方法和parseInt()方法,您会怎么写?请您先动手写toString()方法。我对于toString()的思路:1.首先需要得到这个Integer数值的位数,所以肯定有一个getIntegerSize()的private方法2.然后要把这个Integer数值转化为一个字符数组,所以也要有一个getChars()原创 2012-02-10 15:57:56 · 735 阅读 · 0 评论 -
JDK1.5下的String优化
String s = "mx"; String s1 = "java"; String s2 = s + s1; System.out.println(s2); 可以看到,编译后的程序中,s2的计算仍然使用了s + s1的方式,换句话说还是生成了第三个字符串对象。那么JDK1.5编译后的程序又是怎样的呢?String s = "mx"; String s1 = "java"; S转载 2012-02-09 09:35:44 · 769 阅读 · 1 评论 -
Java反射机制
问题:在运行时,对一个JAVA类,能否知道属性和方法;能否调用它的任意方法?答案是可以的,JAVA提供一种反射机制可以实现。 目录什么是JAVA的反射机制JDK中提供的Reflection APIJAVA反射机制提供了什么功能获取类的Class对象获取类的Fields获取类的Method获取类的Constructor新建类的实例 Cl转载 2013-05-20 19:30:05 · 540 阅读 · 0 评论 -
Java 理论和实践: 了解泛型
识别和避免学习使用泛型过程中的陷阱Brian Goetz (brian@quiotix.com), 首席顾问, Quiotix简介: JDK 5.0 中增加的泛型类型,是 Java 语言中类型安全的一次重要改进。但是,对于初次使用泛型类型的用户来说,泛型的某些方面看起来可能不容易明白,甚至非常奇怪。在本月的“Java 理论和实践”中,Brian Goetz 分析转载 2013-05-20 19:17:08 · 498 阅读 · 0 评论 -
让Java代码跑得更快
本文简单介绍一下在写代码过程中用到的一些让JAVA代码更高效的技巧。详细请看内容AD:2013大数据全球技术峰会课程PPT下载本文简单介绍一下在写代码过程中用到的一些让JAVA代码更高效的技巧。1,将一些系统资源放在池中,如数据库连接,线程等.在standalone的应用中,数据库连接池可以使用一些开源的连接池实现,如C3P0,proxool和DBC转载 2013-05-25 18:55:32 · 613 阅读 · 0 评论