![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java基础
fangchengimz
这个作者很懒,什么都没留下…
展开
-
java方法句柄
https://blog.csdn.net/ljz2016/article/details/83097461原创 2020-07-25 12:01:26 · 187 阅读 · 0 评论 -
Java String 对象
String 对象的实现String对象是 Java 中使用最频繁的对象之一,所以 Java 公司也在不断的对String对象的实现进行优化,以便提升String对象的性能,看下面这张图,一起了解一下String对象的优化过程。1. 在 Java6 以及之前的版本中String对象是对 char 数组进行了封装实现的对象,主要有四个成员变量:char 数组、偏移量 offset、字符数量 count、哈希值 hash。String对象是通过 offset 和 count ..原创 2020-07-25 10:47:30 · 134 阅读 · 0 评论 -
JVM 之 OopMap 和 RememberedSet
OopMapOopMap 记录了栈上本地变量到堆上对象的引用关系。其作用是:垃圾收集时,收集线程会对栈上的内存进行扫描,看看哪些位置存储了 Reference 类型。如果发现某个位置确实存的是 Reference 类型,就意味着它所引用的对象这一次不能被回收。但问题是,栈上的本地变量表里面只有一部分数据是 Reference 类型的(它们是我们所需要的),那些非 Reference 类型的数据对我们而言毫无用处,但我们还是不得不对整个栈全部扫描一遍,这是对时间和资源的一种浪费。一个很自然的想法是,能不能原创 2020-07-23 17:47:08 · 187 阅读 · 0 评论 -
深入理解Java虚拟机
内存区域分布:https://blog.csdn.net/xyh930929/article/details/80955959垃圾收集算法:https://blog.csdn.net/xyh930929/article/details/81121478HotSpot算法和垃圾收集器:https://blog.csdn.net/xyh930929/article/details/81281471Eden、Survivor、老年代、GC日志:https://blog.csdn.net/xyh93原创 2020-07-23 16:08:33 · 180 阅读 · 0 评论 -
System.arraycopy
System提供了一个静态方法arraycopy(),我们可以使用它来实现数组之间的复制。其函数原型是: public static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length) src:源数组; srcPos:源数组要复制的起始位置; dest:目的数组; destPos:目的数组放置转载 2016-01-18 16:00:58 · 1054 阅读 · 0 评论 -
Java transient关键字
1. transient的作用及使用方法 我们都知道一个对象只要实现了Serilizable接口,这个对象就可以被序列化,java的这种序列化模式为开发者提供了很多便利,我们可以不必关系具体序列化的过程,只要这个类实现了Serilizable接口,这个类的所有属性和方法都会自动序列化。 然而在实际开发过程中,我们常常会遇到这样的问题,这个类的有些属性需要序列化,转载 2016-01-18 15:17:56 · 238 阅读 · 0 评论 -
java中的native关键字
JNI是Java Native Interface的 缩写。从Java 1.1开始,Java Native Interface (JNI)标准成为java平台的一部分,它允许Java代码和其他语言写的代码进行交互。JNI一开始是为了本地已编译语言,尤其是C和C++而设计 的,但是它并不妨碍你使用其他语言,只要调用约定受支持就可以了。 使用java与本地已编译的代码交互,通常会丧失转载 2016-01-18 09:46:05 · 213 阅读 · 0 评论 -
Linux下Tomcat的安装配置
Linux下Tomcat的安装配置一.下载安装对应的jdk,并配置Java环境。官网下载地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk-6u26-download-400750.html下载将jdk加压后放到/usr/local目录下: [root@master ~]#chmod转载 2015-12-28 10:25:07 · 238 阅读 · 0 评论 -
java 重定向和转发的区别
java 重定向和转发的区别重定向和转发有一个重要的不同:当使用转发时,JSP容器将使用一个内部的方法来调用目标页面,新的页面继续处理同一个请求,而浏览器将不会知道这个过程。 与之相反,重定向方式的含义是第一个页面通知浏览器发送一个新的页面请求。因为,当你使用重定向时,浏览器中所显示的URL会变成新页面的URL, 而当使用转发时,该URL会保持不变。重定向的速度比转发慢,因为浏览器还得转载 2015-09-20 17:41:37 · 187 阅读 · 0 评论 -
HashMap的实现原理
1. HashMap的数据结构数据结构中有数组和链表来实现对数据的存储,但这两者基本上是两个极端。 数组数组存储区间是连续的,占用内存严重,故空间复杂的很大。但数组的二分查找时间复杂度小,为O(1);数组的特点是:寻址容易,插入和删除困难;链表链表存储区间离散,占用内存比较宽松,故空间复杂度很小,但时间复杂度很大,达O(N)。链表的特点是:寻址困难转载 2015-12-18 17:39:00 · 263 阅读 · 0 评论 -
JAVA IO 详解
初学java,一直搞不懂java里面的io关系,在网上找了很多大多都是给个结构图草草描述也看的不是很懂。而且没有结合到java7 的最新技术,所以自己来整理一下,有错的话请指正,也希望大家提出宝贵意见。首先看个图:(如果你也是初学者,我相信你看了真个人都不好了,想想java设计者真是煞费苦心啊!) 这是java io 比较基本的一些处理流,除此之外我们还会提到一些比转载 2016-01-11 09:46:38 · 245 阅读 · 0 评论 -
Java内部类详解
Java内部类详解 说起内部类这个词,想必很多人都不陌生,但是又会觉得不熟悉。原因是平时编写代码时可能用到的场景不多,用得最多的是在有事件监听的情况下,并且即使用到也很少去总结内部类的用法。今天我们就来一探究竟。下面是本文的目录大纲: 一.内部类基础 二.深入理解内部类 三.内部类的使用场景和好处 四.常见的与内部类相关的笔试面试题一.内部转载 2016-02-23 11:01:15 · 300 阅读 · 0 评论 -
Java 中的中文编码问题
深入分析 Java 中的中文编码问题编码问题一直困扰着开发人员,尤其在 Java 中更加明显,因为 Java 是跨平台语言,不同平台之间编码之间的切换较多。本文将向你详细介绍 Java 中编码问题出现的根本原因,你将了解到:Java 中经常遇到的几种编码格式的区别;Java 中经常需要编码的场景;出现中文问题的原因分析;在开发 Java web 程序时可能会存在编码的几个地方,一个 H转载 2016-07-15 13:43:05 · 274 阅读 · 0 评论 -
Eclipse将引用了第三方jar包的Java项目打包成jar文件的两种方法
方案一:用Eclipse自带的Export功能步骤1:准备主清单文件 “MANIFEST.MF”,由于是打包引用了第三方jar包的Java项目,故需要自定义配置文件MANIFEST.MF,在该项目下建立文件MANIFEST.MF,内容如下:Manifest-Version: 1.0Class-Path: lib/commons-codec.jar lib/commons-http转载 2016-10-21 11:15:32 · 199 阅读 · 0 评论 -
Eclipse将引用了第三方jar包的Java项目打包成jar文件的两种方法
http://www.cnblogs.com/lanxuezaipiao/p/3291641.html转载 2016-10-21 11:17:46 · 229 阅读 · 0 评论 -
整理JRE瘦身或精简JRE
前不久给朋友做了一个桌面程序,程序文件没多大,但运行Java程序需要jre,但jre足足有80M多,然后在网上搜了如何给给JRE瘦身或精简JRE,整理如下:打开JRE安装目录.目录包括bin,lib二个文件夹,所以就是将这两个文件进行瘦身了,1. bin: 可以认为这是Java虚拟机.2. lib: 执行class文件时,Java虚拟机需要用到的类库及资源文件.转载 2016-10-26 13:55:40 · 1595 阅读 · 0 评论 -
tomcat 设置JVM参数
如果要在MyEclipse里面启动tomcat,设置JVM参数时,需要在如下位置设置,Window->Preferences->MyEclipse Enterprise Workbench->Servers->Tomcat 6.x->JDK->OptionalJava VM arguments:-Xms1024m -Xmx1024m-XX:PermSize=128M -转载 2016-10-26 15:42:44 · 384 阅读 · 0 评论 -
递归
所谓递归,是指程序调用自身,当然,递归不会无休止地调用下去,它必然有一个出口,当满足条件时程序也就结束了,不然的话,那就是死循环了。看下面这个类,有几个递归方法,看了之后肯定会对你学习递归很有帮助的。/**递归类Recursion的定义*/public class Recursion{ //递归方法DecimalToBinary,把一个十进制数转换成二进制数转载 2015-09-08 16:31:22 · 267 阅读 · 0 评论 -
String、StringBuffer与StringBuilder之间区别
关于String,StringBuffer,StringBuilder的东西,现在整理一下。关于这三个类在字符串处理中的位置不言而喻,那么他们到底有什么优缺点,到底什么时候该用谁呢?下面我们从以下几点说明一下 1.三者在执行速度方面的比较:StringBuilder > StringBuffer > String 2.String 的原因 String:字符串常转载 2015-09-08 10:48:37 · 184 阅读 · 0 评论 -
EJB详解
引用:http://blog.csdn.net/jojo52013145/article/details/5783677我们不禁要问,什么是"服务集群"?什么是"企业级开发"?既然说了EJB 是为了"服务集群"和"企业级开发",那么,总得说说什么是所谓的"服务集群"和"企业级开发"吧!这个问题其实挺关键的,因为J2EE 中并没有说明白,也没有具体的指标或者事例告诉广大程序员什么转载 2015-06-19 09:51:15 · 406 阅读 · 0 评论 -
GC
GC:Java技术提供了一个系统级的线程(Thread),即垃圾收集器线程(Garbage Collection Thread),来跟踪每一块分配出去的内存空间,当Java 虚拟机(Java Virtual Machine)处于空闲循环时,垃圾收集器线程会自动检查每一快分配出去的内存空间,然后自动回收每一快可以回收的无用的内存块。 垃圾收集器线程是一种低优先级的线程,在一个Jav原创 2015-06-19 09:52:42 · 331 阅读 · 0 评论 -
J2EE说明
j2eeJ2EE Java2平台企业版(Java 2 Platform,Enterprise Edition) J2EE是一套全然不同于传统应用开发的技术架构,包含许多组件,主要可简化且规范应用系统的开发与部署,进而提高可移植性、安全与再用价值。 J2EE核心是一组技术规范与指南,其中所包含的各类组件、服务架构及技术层次,均有共通的标准及规格,让各种依循J2EE架构的不同平台之间,存在良好的兼容性转载 2015-06-19 09:51:55 · 283 阅读 · 0 评论 -
volatile
就像大家更熟悉的const一样,volatile是一个类型修饰符(type specifier)。它是被设计用来修饰被不同线程访问和修改的变量。如果不加入volatile,基本上会导致这样的结果:要么无法编写多线程程序,要么编译器失去大量优化的机会。volatile的作用是: 作为指令关键字,确保本条指令不会因编译器的优化而省略,且要求每次直接读值.简单地说就是防止编译器对代码进行优化.比转载 2015-06-26 11:51:32 · 477 阅读 · 0 评论 -
ConcurrentHashMap之实现细节
ConcurrentHashMap是Java 5中支持高并发、高吞吐量的线程安全HashMap实现。在这之前我对ConcurrentHashMap只有一些肤浅的理解,仅知道它采用了多个锁,大概也足够了。但是在经过一次惨痛的面试经历之后,我觉得必须深入研究它的实现。面试中被问到读是否要加锁,因为读写会发生冲突,我说必须要加锁,我和面试官也因此发生了冲突,结果可想而知。还是闲话少说,通过仔细阅读源代码转载 2015-06-26 11:30:36 · 285 阅读 · 0 评论 -
Java学习的30个目标以及系统架构师推荐的书 .
第一阶段 2.你需要学习JAVA语言的基础知识以及它的核心类库 (collections,serialization,streams,networking, multithreading,reflection,event,handling,NIO,localization,以及其他)。 5.你需要学习java数据库技术,如JDBCAPI并且会使用至少一种persistence/ORM构架,转载 2015-07-10 09:49:35 · 405 阅读 · 0 评论 -
序列化
Java 串行化技术可以使你将一个对象的状态写入一个Byte 流里,并且可以从其它地方把该Byte 流里的数据读出来,重新构造一个相同的对象。这种机制允许你将对象通过网络进行传播,并可以随时把对象持久化到数据库、文件等系统里。Java的串行化机制是RMI、EJB等技术的技术基础。用途:利用对象的串行化实现保存应用程序的当前工作状态,下次再启动的时候将自动地恢复到上次执行的状态。序列化就是一种用转载 2015-07-10 17:10:42 · 268 阅读 · 0 评论 -
Java中HashMap和TreeMap的区别深入理解
HashMap通过hashcode对其内容进行快速查找,而 TreeMap中所有的元素都保持着某种固定的顺序,如果你需要得到一个有序的结果你就应该使用TreeMap(HashMap中元素的排列顺序是不固定的)。HashMap 非线程安全 TreeMap 非线程安全 线程安全 在Java里,线程安全一般体现在两个方面: 1、多个thread对同一个java实例的访问(read转载 2015-08-24 10:36:14 · 249 阅读 · 0 评论 -
java中instanceof用法
java 中的instanceof 运算符是用来在运行时指出对象是否是特定类的一个实例。instanceof通过返回一个布尔值来指出,这个对象是否是这个特定类或者是它的子类的一个实例。 用法:result = object instanceof class参数:Result:布尔类型。Object:必选项。任意对象表达式。Class:必选项。任意已定义的对象类。说明:转载 2015-08-25 15:44:20 · 160 阅读 · 0 评论 -
Java中创建(实例化)对象的五种方式
1、用new语句创建对象,这是最常见的创建对象的方法。2、通过工厂方法返回对象,如:String str = String.valueOf(23); 3、运用反射手段,调用java.lang.Class或者java.lang.reflect.Constructor类的newInstance()实例方法。如:Object obj = Class.forName("java.lang.Obje转载 2015-08-25 17:28:00 · 203 阅读 · 0 评论 -
关于Arraylist的增量:ensureCapacity()
1. 如果你不能确定ensureCapacity()方法到底是干嘛用的,最好不要随便用它。2. 指定位置来往ArrayList中插入元素有可能引用元素的大量移动,是极其影响效率的,也不要滥用。任何一个ArrayList对象都有一个capacity属性,用来指示该ArrayList的最小容量,用“容量”这个词容易引起像本贴楼主那样的误解,我觉得用“容纳能力”比较贴切。我们知道Ar原创 2015-09-09 12:02:18 · 677 阅读 · 0 评论 -
HashMap实现原理分析
1. HashMap的数据结构数据结构中有数组和链表来实现对数据的存储,但这两者基本上是两个极端。 数组数组存储区间是连续的,占用内存严重,故空间复杂的很大。但数组的二分查找时间复杂度小,为O(1);数组的特点是:寻址容易,插入和删除困难;链表链表存储区间离散,占用内存比较宽松,故空间复杂度很小,但时间复杂度很大,达O(N)。链表的特点是:寻址困难,插入和转载 2015-09-09 14:58:05 · 268 阅读 · 0 评论 -
Java中ArrayList和LinkedList区别
一般大家都知道ArrayList和LinkedList的大致区别: 1.ArrayList是实现了基于动态数组的数据结构,LinkedList基于链表的数据结构。 2.对于随机访问get和set,ArrayList觉得优于LinkedList,因为LinkedList要移动指针。 3.对于新增和删除操作add和remove,LinedList比较占优势,因为ArrayList要移转载 2015-09-09 14:35:11 · 208 阅读 · 0 评论 -
IO
java中的IO整理本文章基本覆盖了java IO的全部内容,java新IO没有涉及,因为我想和这个分开,以突出那个的重要性,新IO哪一篇文章还没有开始写,估计很快就能和大家见面。照旧,文章依旧以例子为主,因为讲解内容的java书很多了,我觉的学以致用才是真。代码是写出来的,不是看出来的。最后欢迎大家提出意见和建议。【案例1】创建一个新文件转载 2015-09-10 12:00:30 · 295 阅读 · 0 评论 -
Java中的访问修饰符详细解析
1、类的修饰符分为:可访问控制符和非访问控制符两种。 可访问控制符是:公共类修饰符 public非访问控制符有:抽象类修饰符 abstract ;最终类修饰符 final1 )公共类修饰符 public : Java 语言中类的可访问控制符只有一个: public 即公共的。每个 Java 程序的主类都必须是 public 类作为公共工具供其它类和程序使用的应定义为 pub转载 2015-09-14 11:30:07 · 150 阅读 · 0 评论 -
Eclipse快捷键 10个最有用的快捷键
Eclipse中10个最有用的快捷键组合 一个Eclipse骨灰级开发者总结了他认为最有用但又不太为人所知的快捷键组合。通过这些组合可以更加容易的浏览源代码,使得整体的开发效率和质量得到提升。 1. ctrl+shift+r:打开资源 这可能是所有快捷键组合中最省时间的了。这组快捷键可以让你打开你的工作区中任何一个文件,而你只需要按下文件名或mask名中的前几个转载 2015-09-14 11:37:37 · 183 阅读 · 0 评论 -
java面试
模块一:试题一1、 工厂模式和抽象工厂模式之间的区别工厂方法模式:一个抽象产品类,可以派生出多个具体产品类。一个抽象工厂类,可以派生出多个具体工厂类。每个具体工厂类只能创建一个具体产品类的实例。抽象工厂模式:多个抽象产品类,每个抽象产品类可以派生出多个具体产品类。一个抽象工厂类,可以派生出多个具体工厂类。每个具体工厂类可以创建多个具体产品类的实例。区别原创 2015-06-19 09:49:45 · 713 阅读 · 0 评论