Java基础知识
Heaven-Wang
坐标:浙江杭州 联系我:490095337@qq.com
展开
-
Java IO编程
Java IOJava NIO 详解(一)Java NIO 详解(二)本列表会不断更新原创 2015-11-03 18:19:15 · 2141 阅读 · 0 评论 -
Java NIO 详解(一)
NIO即新的输入输出,这个库是在JDK1.4中才引入的。它在标准java代码中提供了高速的面向块的IO操作。一、基本概念描述1.1 I/O简介I/O即输入输出,是计算机与外界世界的一个借口。IO操作的实际主题是操作系统。在java编程中,一般使用流的方式来处理IO,所有的IO都被视作是单个字节的移动,通过stream对象一次移动一个字节。流IO负责把对象转换为字节,然后再转换为对象。关于Java原创 2015-09-14 11:07:29 · 51155 阅读 · 29 评论 -
Java synchronized 介绍
我们知道Java API提供了丰富的多线程机制,但是要想多线程机制能够正常运转,需要采取一些措施来防止多个线程访问相同的资源。为防止出现这样的冲突,只需在线程使用一个资源时为其加锁即可。访问资源的第一个线程加上锁以后,其他线程便不能再使用那个资源,除非被解锁。而在java中,对这种特殊的资源—— 对象中的内存—— Java 提供了内建的机制来防止它们的冲突。用Java中的Synchronized关键原创 2015-10-13 16:10:09 · 7388 阅读 · 4 评论 -
Java 集合
Java集合开发相关的文章列表:java集合概览几幅图让你认识Java集合java中List、Array、Map、Set等集合相互转换的最佳方法关于Java集合最被关注的10 个问题本列表会不断更新原创 2015-11-03 18:14:18 · 3901 阅读 · 0 评论 -
几幅图让你认识Java集合
1.Collection 和 Collections 首先Collection和Collections是两个完全不同的范畴。正如下图,Collection是所有集合的root接口,而Collections仅仅是一个工具类,它提供了很多静态的工具方法来操作一个集合。2. 集合的继承树3.Map的继承树4.总结5.示例代码原创 2014-09-02 13:49:35 · 2389 阅读 · 1 评论 -
Java 集合概览
Java Collection API提供了一些列的类和接口来帮助我们存储和管理对象集合。其实Java中的集合工作起来像是一个数组,不过集合的大小是可以动态改变的,而且集合也提供了更多高级功能。有了JavaCollectionAPI,我们就不需要自己编写集合类了,大部分Java集合类都位于java.util包里面,还有一些和并发相关的集合类位于java.util.concurrent包中。下面就介绍原创 2015-10-30 17:06:36 · 3724 阅读 · 3 评论 -
java 内部类(inner class)详解
一、为何使用内部类内部类提供了更好的封装,只有外部类能访问内部类 内部类可以独立继承一个接口,不受外部类是否继承接口影响内部类中的属性和方法即使是外部类也不能直接访问,相反内部类可以直接访问外部类的属性和方法,即使private 利于回调函数的编写一个内部类的例子:public class OuterClass { private String outerName; pri原创 2016-06-30 17:30:17 · 33408 阅读 · 3 评论 -
java 线程详解
一、概念1.1 基本概念进程是程序执行的一个实例,比如说,10个用户同时执行IE,那么就有10个独立的进程(尽管他们共享同一个可执行代码)。进程的特点,每一个进程都有自己的独立的一块内存空间、一组资源系统。其内部数据和状态都是完全独立的。怎么看待多进程?进程的优点是提高CPU运行效率,在同一时间内执行多个程序,即并发执行。但是从严格上讲,也不是绝对的同一时刻执行多个程序,只不过CPU在执行时通过时间原创 2015-10-19 18:23:19 · 3537 阅读 · 0 评论 -
Java 异常设计最佳实践
关于异常在讲Java异常实践之前,先理解一下什么是异常。到底什么才算是异常呢?其实异常可以看做在我们编程过程中遇到的一些意外情况,当出现这些意外情况时我们无法继续进程正常的逻辑处理,此时我们就可以抛出一个异常。广义的讲,抛出异常分三种不同的情况:编程错误导致的异常 :在这个类别里,异常的出现是由于代码的错误(譬如NullPointerException、IllegalArgumentExcepti原创 2016-08-05 10:49:31 · 7919 阅读 · 0 评论 -
Integer.parseInt("") Integer.valueOf("")和new Integer("")之间的区别
把一个String转换成int有Integer.parseInt("")、 Integer.valueOf("")和new Integer("")这么几种方式,它们之间有什么区别呢?我们可以分别看一下它们的源码//Integer.parseInt("")public static int parseInt(String s) throws NumberFormatException { ret原创 2016-08-03 10:47:19 · 17385 阅读 · 8 评论 -
Java NIO 详解(二)
在我的上一篇文章JavaNIO详解(一)中,大家已经了解到了关于标准输入输出NIO相关知识, 本篇将重点介绍基于网络编程的NIO(异步IO)。异步IO异步 I/O 是一种没有阻塞地读写数据的方法。通常,在代码进行 read() 调用时,代码会阻塞直至有可供读取的数据。同样, write()调用将会阻塞直至数据能够写入。另一方面,异步 I/O 调用不但不会阻塞,相反,您可以注册对特定 I/O 事件诸如原创 2015-09-14 17:14:24 · 23549 阅读 · 13 评论 -
Java IO
一、java io 概述1.1 相关概念Java IOJava IO即Java 输入输出系统。不管我们编写何种应用,都难免和各种输入输出相关的媒介打交道,其实和媒介进行IO的过程是十分复杂的,这要考虑的因素特别多,比如我们要考虑和哪种媒介进行IO(文件、控制台、网络),我们还要考虑具体和它们的通信方式(顺序、随机、二进制、按字符、按字、按行等等)。Java类库的设计者通过设计大量的类来攻克这些难题,原创 2015-09-10 15:55:28 · 38521 阅读 · 17 评论 -
Java SimpleDateFormat 线程不安全问题及解决方法
Java SimpleDateFormat 是线程不安全的,当在多线程环境下使用一个DateFormatd原创 2014-05-07 16:43:30 · 4001 阅读 · 1 评论 -
如何等待java线程池中所有任务完成
有时候我们需要等待java thread原创 2014-05-05 12:21:40 · 25558 阅读 · 0 评论 -
JDBC PreparedStatement 批量查询 in 的实现 方案
我们经常会有这种业务需求,根据一个条件集合去查询一张表的数据,比如: select * from all_element t where t.task_id in (List <taskids>); 在java语言中,我们需要用到JDBC来和数据库打交道,那么在JDBC中该如何处理这种需求呢?我们可以有如下几种处理方式原创 2014-04-18 17:08:03 · 29661 阅读 · 0 评论 -
如何利用JDBC启动Oracle 自动追踪(auto trace)
有时我们需要对执行SQL的具体执行过程做一个追踪分析,特别是在应用程序性能优化的时候。Oracle两个工具可以帮助我们做好性能分析,一个是SQL_TRACE,一个是SESSION_EVENT。SQL_TRACE跟踪SQL执行过程,如解析时间、执行时间、查询时间等;SESSION_EVENT跟踪执行过程的等待事件,如等待客户端响应时间,等待本地磁盘IO事件等等。 开启Oracle自动追踪原创 2014-07-17 10:54:55 · 2232 阅读 · 0 评论 -
JDBC性能优化方案
近期用到了利用JDBC查询Oracle数据库,但是查询效率不尽人意,研究了一下JDBC方面可以优化的地方,在这里跟大家分享一下。 1.设置最优的预取值 defaultRowPrefetch:预取条数默认值 defaultBatchValue:触发查询操作的批量请求值原创 2014-07-17 09:36:13 · 11639 阅读 · 0 评论 -
如何启动JDBC Debug模式,打印JDBC诊断日志
1.下载Debug版本jar包 首先要下载一个Debug版本的JDBC jar包,Debug版本的jar包命名形式为jdbcX_g.jar(如下图所示),如Oracle11g的Debug版本的jar包为jdbc6_g.jar。点击这里下载:http://www.oracle.com/technetwork/database/enterprise-edition/jdbc-112010-原创 2014-07-17 10:31:25 · 3751 阅读 · 0 评论 -
关于Java集合最被关注的10 个问题
下面是stackoverflow关于Java集合方面讨论最多的几个问题,在这里整理出来供大家参考。1.关于LinkList和ArrayListArrayList:内部实现是个数组,其中的元素可以通过index获取。但是,如果一个数组满了的话,我们就必须重新分配一个更大的数组然后把所有元素移动到这个新数组,其时间复杂度为O(n)。添加或删除一个元素时也需要移动数组中的其它元素。这原创 2014-09-02 20:08:19 · 2411 阅读 · 0 评论 -
如何把ResultSet转换成Java对象
youshi如果要用JDBC实现类似于iBATIS的orm映射功能,我们可以模仿iBATIS的方式自己写一个Mapper实现类,原理其实也是利用反射,附件是写好的一个ResultSetMapper映射类的工具,我们可以直接放到我们的util包中,使用起来非常方便,举个例子:原创 2014-09-03 11:30:43 · 18523 阅读 · 1 评论 -
java中List、Array、Map、Set等集合相互转换的最佳方法
在java中,我们经常需要对List、Array等做一些转换操作,当然转换方法有很多种,但哪种方法既方便又高效呢?在这里向大家介绍一下集合间的最佳转换方法。1.List转换为ArrayList list = new ArrayList();list.add("China");list.add("Switzerland");list.add("Italy");list.add("原创 2014-12-03 16:52:19 · 9317 阅读 · 0 评论 -
JVM内存管理及GC机制
一、概述Java GC(Garbage Collection,垃圾收集,垃圾回收)机制,是Java与C++/C的主要区别之一,作为Java开发者,一般不需要专门编写内存回收和垃圾清理代码,对内存泄露和溢出的问题,也不需要像C程序员那样战战兢兢。经过这么长时间的发展,Java GC机制已经日臻完善,几乎可以自动的为我们做绝大多数的事情。虽然java不需要开发人员显示的分配和回收内存,这对开发人员确实降原创 2015-09-08 16:28:18 · 32469 阅读 · 10 评论 -
ClassNotFoundException和NoClassDefFoundError
ClassNotFoundException和NoClassDefFoundErrorClassNotFoundExceptionNoClassDefFoundError解决方案最后总结最近工作中发现老是有同事遇到NoClassDefFoundError以及ClassNotFoundException这两种异常,很对人对此比较困惑,于是研究了一下并整理了此文档,希望对大家有所帮助。ClassN...原创 2018-10-25 17:11:40 · 3342 阅读 · 0 评论