
java基础
文章平均质量分 93
q1054261752
这个作者很懒,什么都没留下…
展开
-
list的add和addAll的区别
list的add只是把一个数据存放到list中list的addAll方法是把一个list数据存放到list中原创 2019-11-29 15:27:49 · 124 阅读 · 0 评论 -
java序列化一定要应该注意的6个事项!
1、如果子类实现Serializable接口而父类未实现时,父类不会被序列化,但此时父类必须有个无参构造方法,否则会抛InvalidClassException异常。2、静态变量不会被序列化,那是类的“菜”,不是对象的。3、transient关键字修饰变量可以限制序列化。4、虚拟机是否允许反序列化,不仅取决于类路径和功能代码是否一致,一个非常重要的一点是两个类的序列化 ID转载 2016-06-23 18:27:21 · 1001 阅读 · 0 评论 -
Java中集合list的add方法添加的不是值COPY而是地址
测试代码如下:package test;import java.util.ArrayList;import java.util.List;class Point {int x;int y;public Point(int x,int y){this.x = x;this.y = y;}public int getX() {re转载 2016-07-30 22:26:21 · 6228 阅读 · 0 评论 -
【解惑】JDBC中使用Class.forName("xxx")的意义
Class.forName方法介绍在java.lang.Class中,有两个重载的forName方法,分别是:static ClassforName(String className),该方法等价于Class.forName(className, true, this.getClass().getClassLoader())static ClassforName(Strin转载 2016-08-12 19:09:03 · 3575 阅读 · 0 评论 -
Java中native关键字
今日在hibernate源代码中遇到了native关键词,甚是陌生,就查了点资料,对native是什么东西有了那么一点了解,并做一小记。 native关键字说明其修饰的方法是一个原生态方法,方法对应的实现不是在当前文件,而是在用其他语言(如C和C++)实现的文件中。Java语言本身不能对操作系统底层进行访问和操作,但是可以通过JNI接口调用其他语言来实现对底层的访问。转载 2016-08-12 20:12:02 · 250 阅读 · 0 评论 -
Java的native关键字
java native关键字 一. 什么是Native Method 简单地讲,一个Native Method就是一个java调用非java代码的接口。一个Native Method是这样一个java的方法:该方法的实现由非java语言实现,比如C。这个特征并非java所特有,很多其它的编程语言都有这一机制,比如在C++中,你可以用extern "C"告知C++编译器去调用一个C的函数转载 2016-08-12 20:13:12 · 236 阅读 · 0 评论 -
通过反射获取泛型类的类型
package cn.it.shop.service.impl;import java.lang.reflect.ParameterizedType;import java.util.List;import org.hibernate.Session;import org.hibernate.SessionFactory;import cn.it.sho原创 2016-09-19 20:44:53 · 428 阅读 · 0 评论 -
Java_final关键字,不可变类,缓存不可变类实例(缓存池技术)
1. final变量:final修饰的变量一旦获得了初始值之后就不可被改变。final可以修饰成员变量,局部变量,形参。1.1 final成员变量:final修饰的类属性(static)可以在静态初始化块或声明时指定初始值;final修饰的实例属性可以在非静态初始化块,构造器或声明时指定初始值。[html] view plain copy print?转载 2016-11-08 21:22:09 · 545 阅读 · 0 评论 -
Java 并发专题 : Timer的缺陷 用ScheduledExecutorService替代
继续并发,上篇博客对于ScheduledThreadPoolExecutor没有进行介绍,说过会和Timer一直单独写一篇Blog.1、Timer管理延时任务的缺陷a、以前在项目中也经常使用定时器,比如每隔一段时间清理项目中的一些垃圾文件,每个一段时间进行数据清洗;然而Timer是存在一些缺陷的,因为Timer在执行定时任务时只会创建一个线程,所以如果存在多个任务,且任务时间过长,转载 2016-10-07 21:25:58 · 213 阅读 · 0 评论 -
Java代理详解
1. 代理概念 代理顾名思义,代替别人做事。在设计模式中有代理模式,它的定义:为其他对象提供一种代理以控制对这种对象的访问。 代理模式中的代理类就是代替委托类完成事情。代理类需要完成的事情主要是对委托类进行预处理,过滤消息,把消息转发给委托类,以及事后处理消息。代理模式一大特点:对于编程人员而言看到的做事情代理类,而不是原来的委托类。 2. 两种转载 2017-02-09 20:30:51 · 291 阅读 · 0 评论 -
JDK动态代理和CGLIB动态代理+源码下载
在上一篇文章-java代理详解讲解实现机制,一种是继承另外一种是组合,而且通过做实现也证明使用组合的方式更加的灵活。之后提到了代理的两种种类,一种是静态代理,另外一种是动态代理。上一篇文件中着重介绍的是静态代理(相对于动态代理很容易理解)。这一片文章就接着介绍动态代理。 动态代理实现的最终效果:通过以一个统一的方式实现对任意的接口/类的代理。相比较静态代理而言,我们可以不用再无限制的增加转载 2017-02-10 11:33:26 · 425 阅读 · 0 评论 -
浅析HashSet 与 HashMap
下面所有出现的源码,均来自java 的 src包。昨天学习了HashSet 与 HashMap基本用法,为了更好地理解他们的实现机制,就大概看了看源码,因为还是菜鸟。HashSet,存储object的集合,既然是集合,就不允许有重复元素。判断两个元素是否相同,是由hashCode与equals方法共同完成的。如果集合中对象的类没有重写这两个方法,那么就会使用转载 2017-02-22 16:50:48 · 261 阅读 · 0 评论 -
Java中用内存映射NIO处理大文件
有如下情况下可以用到内存文件映射技术解决问题: 1.不要复制文件中所有的数据,只需要修改文件中局部的数据。 2.并行/分段处理大文件。 如下代码示使用javaNIO局部修改文件中指定位置的部分数据: /** * 修改文件中的某一部分的数据测试:将字定位置的字母改为大写 * @param fName :要修改转载 2017-07-14 21:26:24 · 1235 阅读 · 0 评论 -
RunTime.getRunTime().addShutdownHook用法
转载:https://blog.youkuaiyun.com/wgw335363240/article/details/5854402,对其进行修改今天在阅读Tomcat源码的时候,catalina这个类中使用了下边的代码,不是很了解,所以google了一下,然后测试下方法,Tomcat中的相关代码如下: Runtime.getRuntime().addShutdownHook(shutdo...转载 2018-09-18 17:48:19 · 212 阅读 · 0 评论 -
java中定义泛型类和定义泛型方法的写法
1.方法中的泛型public static T backSerializable(Class clazz , String path ,String fileName){ FileInputStream fis = null; ObjectInputStream ois = null; Object obj = null; try { fis = n原创 2016-07-08 15:29:38 · 22358 阅读 · 0 评论 -
文件的操作(RandomAccessFile类)
RandomAccessFile类可以基于指针对文件进行随机读写操作,其总是在当前指针位置读写字节。它提供了2中访问模式:RandomAccessFile(File file,string mode):根据文件对象file和读写操作mode创建对象RandomAccessFile(String filename,String mode):根据文件名filename和读写操作mod转载 2016-06-22 09:56:23 · 341 阅读 · 0 评论 -
四种List集合的遍历
import java.util.ArrayList;import java.util.Iterator;import java.util.List; public class Test01 { public static void main(String[] args) { List list = new ArrayL转载 2015-09-25 18:50:31 · 426 阅读 · 0 评论 -
JAVA中equals方法与hashCode方法学习
1,equals方法的比较与 == 的区别是什么?为什么需要重写equals方法?2,为什么说重写了equals方法最好重写hashCode方法?该问题在参考博文里面有一个实例解释了原因。3,如何重写equals方法和hashCode方法?————————————————————————————————————————————1,equals 方法在Object类中,而任何转载 2015-09-25 18:22:59 · 1134 阅读 · 0 评论 -
_范例讲解:一对多关系
实例要求使用类集可以表示出以下的关系:一个学校可以包含多个学生,一个学生属于一个学校,那么这就是一个典型的一对多关系,此时就可以通过类集进行关系的表示。实例主要采用的知识1、类的设计2、类集一个学校有多个学生,那么学生的个数属于未知的,那么这样一来肯定无法用普通的对象数组表示。所以,必须通过类集表示。学生类:public class St原创 2015-10-01 11:55:41 · 528 阅读 · 0 评论 -
范例讲解:多对多的关系
实例要求:1. 一个学生可选多门课程,一门课程可以有多个学生参加,那么这就是一个典型的多对多关系。2.要完成本程序,首先应该定义两个类,学生信息类Student、课程信息类Course,在一个学生类中存在一个集合,保存全部的课程,而在谭程类中要存在一个集合,保存全部的学生。 课程类:import java.util.List ;import java.util.ArrayL原创 2015-10-01 13:25:56 · 1566 阅读 · 0 评论 -
java的浮点的精度、无穷大、无穷小、和非数
public class FloatTest{public static void main(String args[]){float af=5.234435345345f;System.out.println(af);//将看到af的值已经发生了改变double a=0.0;double c=Double.NEGATIVE_INFINITY;float d=F原创 2015-10-08 21:18:24 · 2176 阅读 · 0 评论 -
getResourceAsStream和getResource的用法及Demo实例
用JAVA获取文件,听似简单,但对于很多像我这样的新人来说,还是掌握颇浅,用起来感觉颇深,大家最经常用的,就是用JAVA的File类,如要取得 D:/test.txt文件,就会这样用File file = newFile("D:/test.txt");这样用有什么问题,相信大家都知道,就是路径硬编码,对于JAVA精神来说,应用应该一次成型,到处可 用,并且从现实应用来讲,最终生成的应用转载 2015-11-08 09:48:50 · 1631 阅读 · 1 评论 -
java1.5的新特性---可变参数
public class InterDemo05{ public static void main(String args[]){ System.out.println("第一次运行传入数组:"); Object[] arg1={"LXH","Li","李兴华"}; fun(arg1); System.out.println("\n第二次运行传入可变参数:"); fu原创 2015-10-26 09:55:32 · 367 阅读 · 0 评论 -
java中类的初始化和对象的实例化区别
在程序RUN的一瞬间,什么类啊,静态的东西啊(静态块,静态方法,静态属性),刷刷刷的就在内存中加载(你可以看作初始化)了,只加载一次,然后main方法开始运行(这就是为什么main方法必须是静态的原因),然后执行main中的代码语句,执行到new对象时,才会实例化对象,记住:类加载,只执行一次,即只有有一个类对象(注意不是实例对象),无论你以后怎么个new法,新new的都是实例对象原创 2015-09-24 18:17:04 · 6419 阅读 · 0 评论 -
Java类的初始化
我们知道一个类(class)要被使用必须经过装载,连接,初始化这样的过程。下面先对这三阶段做一个简单的描述,之后会结合一个简单的例子来说明java中类的初始化过程。 在装载阶段,类装载器(Bootstrap ClassLoader 或者用户自定义的ClassLoader) 把编译形成的class文件载入内存,创建类相关的Class对象,这个Class对象封装了我们要使用的类的类型信转载 2015-12-01 00:14:13 · 219 阅读 · 0 评论 -
java.util.Stack类简介
Stack是一个后进先出(last in first out,LIFO)的堆栈,在Vector类的基础上扩展5个方法而来Deque(双端队列)比起Stack具有更好的完整性和一致性,应该被优先使用[plain] view plain copyE push(E item) 把项压入堆栈顶部。 E pop转载 2016-04-29 13:37:22 · 232 阅读 · 0 评论 -
Java并发编程:volatile关键字解析
Java并发编程:volatile关键字解析 volatile这个关键字可能很多朋友都听说过,或许也都用过。在Java 5之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果。在Java 5之后,volatile关键字才得以重获生机。 volatile关键字虽然从字面上理解起来比较简单,但是要用好不是一件容易的事情。由于volatile关键字是与Java的内存模转载 2016-06-24 20:03:44 · 218 阅读 · 0 评论 -
java字符串分解 StringTokenizer用法
Java中substring方法可以分解字符串,返回的是原字符串的一个子字符串。如果要讲一个字符串分解为一个一个的单词或者标记,StringTokenizer可以帮你。先看个例子:[java] view plain copy print?public static void main(String[] args) { StringTo转载 2016-07-03 20:26:33 · 289 阅读 · 0 评论 -
HashMap和HashSet的区别
HashMap和HashSet的区别是Java面试中最常被问到的问题。如果没有涉及到Collection框架以及多线程的面试,可以说是不完整。而Collection框架的问题不涉及到HashSet和HashMap,也可以说是不完整。HashMap和HashSet都是collection框架的一部分,它们让我们能够使用对象的集合。collection框架有自己的接口和实现,主要分为Set接口,Lis转载 2015-08-17 20:19:53 · 339 阅读 · 0 评论