![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
javaSE
晒酷网-Ray
这个作者很懒,什么都没留下…
展开
-
Java 之NIO(三) - FileLock
简介:Java新IO中提供了文件锁的功能,这样当一个线程锁定一个文件后,其它线程就无法操作此文件,想要使用锁操作文件,可以使用FileLock类实现,FileLock对象可以使用FileChannel获取得到。在FileChannel中获取Filelock实例的方法列表如下:public final FileLock lock()获取此通道文件上的独占锁(排它锁)public原创 2016-03-29 09:48:11 · 516 阅读 · 0 评论 -
Java对象深复制、浅复制
我们在编码过程经常会碰到将一个对象传递给另一个对象,java中对于基本型变量采用的是值传递,而对于对象比如bean传递时采用的引用传递也就是地址传递,而很多时候对于对象传递我们也希望能够象值传递一样,使得传递之前和之后有不同的内存地址,在这种情况下我们一般采用以下两种情况。浅复制与深复制概念浅复制(浅克隆) :被复制对象的所有变量都含有与原来的对象相同的值,原创 2016-04-27 18:11:35 · 3152 阅读 · 0 评论 -
JVM之垃圾回收
说到垃圾回收(Garbage Collection,GC),很多人就会自然而然地把它和Java联系起来。在Java中,程序员不需要去关心内存动态分配和垃圾回收的问题,这一切都交给了JVM来处理。顾名思义,垃圾回收就是释放垃圾占用的空间,那么在Java中,什么样的对象会被认定为“垃圾”?那么当一些对象被确定为垃圾之后,采用什么样的策略来进行回收(释放空间)?在目前的商业虚拟机中,有哪些典型的垃圾收集原创 2016-04-28 16:50:53 · 2975 阅读 · 0 评论 -
Java 之NIO(五) - 非阻塞式网络通信
Selector在新IO中Selector是一个非常重要的概念,在NIO之前通过IO和Socket构造网络通信程序时,所有的服务端将以阻塞式与客户端进行连接,本章内容将介绍通过Selector构造一个非阻塞式网络服务,在学习如何使用Selector构造非阻塞网路之前,我们先看下相关的API。Selector类的常用方法:public static Selector open()原创 2016-04-19 11:00:00 · 520 阅读 · 0 评论 -
Java 对象初始化过程
在Java中,一个对象在可以被使用之前必须要被正确地初始化,这一点是Java规范规定的。本文试图对Java如何执行对象的初始化做一个详细深入地介绍(与对象初始化相同,类在被加载之后也是需要初始化的,本文在最后也会对类的初始化进行介绍,相对于对象初始化来说,类的初始化要相对简单一些)。1.Java对象何时被初始化Java对象在其被创建时初始化,在Java代码中,有两种行为可以引起对象原创 2016-05-03 17:57:45 · 3814 阅读 · 0 评论 -
JSP九大内置对象
虽然现在基本上使用SpringMVC+AJAX进行开发了Java Web了,但是还是很有必要了解一下JSP的九大内置对象的。像request、response、session这些对象,即便使用其他框架也是会经常用到的。因此十分有了解的必要。这些对象可以在JSP页面中调用,而不需要事先定义,这使得JSP编程更加的方便和快捷。其实这些内置对象都对应着某个Servlet类,在JSP被原创 2016-04-20 08:42:26 · 1715 阅读 · 0 评论 -
JVM的内存区域划分
学过C语言的朋友都知道C编译器在划分内存区域的时候经常将管理的区域划分为数据段和代码段,数据段包括堆、栈以及静态数据区。那么在Java语言当中,内存又是如何划分的呢? 由于Java程序是交由JVM执行的,所以我们在谈Java内存区域划分的时候事实上是指JVM内存区域划分。在讨论JVM内存区域划分之前,先来看一下Java程序具体执行的过程: 如上图所示,首先Java源代码原创 2016-04-21 17:32:26 · 851 阅读 · 0 评论 -
Java ArrayList工作原理及实现
1. 概述关于Java集合的描述如下:以数组实现,节约空间,但数组有容量限制。超出限制时会增加50%容量,用System.arraycopy()复制到新的数组,因此最好能给出数组大小的预估值,默认第一次插入元素时创建大小为10的数组。按数组下标访问元素—get(i)/set(i,e) 的性能很高,这是数组的基本优势。直接在数组末尾原创 2016-04-22 17:13:22 · 610 阅读 · 0 评论 -
Java常用异常
填坑,整理下Java的常用异常。正确使用异常在实际编码中非常重要,但面试中的意义相对较小,因为对异常的理解和应用很难通过几句话或几行代码考查出来,不过我们至少应答出三点:异常类的继承关系、常用异常类、常用异常类的使用场景,下文将围绕这三点介绍。JDK版本:oracle java 1.8.0_102异常类的继承关系Java中,所有异常都继承自Throwable转载 2018-01-15 19:51:01 · 181 阅读 · 0 评论 -
Java序列化、反序列化
序列化是干什么的简单说就是为了保存在内存中的各种对象的状态(也就是实例变量,不是方法),并且可以把保存的对象状态再读出来。虽然你可以用你自己的各种各样的方法来保 存object states,但是Java给你提供一种应该比你自己好的保存对象状态的机制,那就是序列化。什么情况下需要序列化当你想把的内存中的对象状态保存到一个文件中或者数据库中时候;当你想用套接字在网络上传送原创 2016-04-25 17:46:41 · 3321 阅读 · 0 评论 -
Java 之NIO(二) - Channel
简介:本节主要内容包括通过Channel(通道)对文件进行读写操作,通道类似于之前的输入/输出流,程序不会直接操作通道,通常都是将数据读入到缓冲区中,然后再从缓冲区中读写数据,与传统的输入输出流相比,通道是双向操作的,既可以完成输入,也可以完成输出。另外,本节还会讲解一下内存映射,内存映射指的是将文件映射到内存中,这样就可以使用系统调用函数进行内存读写,采用这样的方式读取文件是速度最快的。原创 2016-03-25 14:25:50 · 470 阅读 · 0 评论 -
在eclipse中显示GC情况
1、在eclipse根目录下新建文本文件,不带扩展名,如displayGC,打开该文件,输入 org.eclipse.ui/perf/showHeapStatus=true ,保存到eclipse根目录2、打开eclipse.ini文件(使用ue,editplus等文本编辑工具),在首行加入 -debug displayGC -vm javaw.exe,格式如下:3、保存,重启e原创 2013-08-01 10:59:43 · 1140 阅读 · 0 评论 -
java 操作properties文件总结
示例演示:package control;import java.io.BufferedInputStream;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStream;import java.i原创 2013-08-21 15:24:19 · 745 阅读 · 0 评论 -
动态类型语言与静态类型语言的区别
1. 动态语言Dynamically Typed Language例如:ECMAScript(JavaScript)、Ruby、Python、VBScript、php也叫动态类型定义语言与静态类型定义相反,一种在执行期间才去发现数据类型的语言, 动态语言是指程序在运行时可以改变其结构:新的函数可以被引进,已有的函数可以被删除等在结构上的变化。动态语言的类型检查是在运行时做的。原创 2013-08-24 19:18:27 · 794 阅读 · 0 评论 -
Java中List与数组的转换
今天写代码遇到一个奇怪的问题,具体代码不贴出了,写一个简化的版本。如下:ArrayList list=new ArrayList();String strings[]=(String [])list.toArray();这样写代码个人觉得应该没什么问题,编译也没有问题。可是具体运行的时候报异常,如下:Exception in thread "main" java.lang.ClassC原创 2013-07-30 23:22:30 · 564 阅读 · 0 评论 -
JAVA通过TCP编程模拟telnet程序
下面简单通过一个TCP客户端及服务端程序,来模拟我们常用的telnet程序的回应功能,即客户端输入哪些内容,服务端经过简单字符串处理进行响应。简介:在java中使用Socket,即套接字完成TCP程序的开发,使用此类与服务器建立可靠,双向,持续,点对点的通信连接,在socket程序开发中,服务端使用serversocket等待客户端连接,而所有客户端通过socket对象与服务端建立连接,下边简原创 2016-03-21 13:43:36 · 4055 阅读 · 3 评论 -
Java 之NIO(一) - 简介(Buffer)
简介NIO是New IO 的简称,在jdk1.4 里提供的新api。与原始的java io包中面向流(stream-oriented)概念不同,NIO中采用面向块的(block-oriented)概念,这意味着在尽可能的情况下,IO操作以块为单位进行,而不是字节/字符为单位,采用这种方式可以使Java IO性能有大幅提高。另外,与面向线程的,阻塞式IO方式相比,多道通信,非阻塞式I原创 2016-03-23 13:14:14 · 488 阅读 · 1 评论 -
Java 之NIO(四) - 编码解码问题
简介:在新IO中为了保证程序适应各种不同的编码,提供了编码器和解码器,通过解码器可以方便的读取各个平台上不同编码的数据,之后再通过编码器将程序以正确的编码进行输出。在java的新IO中提供了Charset类来处理编码问题,该类还包含了创建编码器(CharsetEncoder) 和 创建解码器(CharsetDecoder)操作。Charset类的常用方法如下:public原创 2016-04-06 18:30:15 · 966 阅读 · 0 评论 -
Java运行时获取当前运行代码类名、方法名
/* * 1.获取当前运行代码的类名,方法名,行号,主要是通过java.lang.StackTraceElement类 * * 2. 获取调用者、当前方法名 * [1]获得调用者的方法名, 同new Throwable * String _methodName = new Exception().getStackTrace()[1].getMethodName(); *...原创 2018-06-24 12:38:27 · 2582 阅读 · 0 评论