java
Zerlinda_Li
岁月就这样静静的消逝没有眼泪没有生命也没有感情
展开
-
BeanUtils.populate(Object bean, Map<String, ? extends Object> properties)将map值映射到对象属性值为null
这里写自定义目录标题public static <T> T mapToObject(Map<String, Object> map, Class<T> t) { try { T instance = t.newInstance(); org.apache.commons.beanutils.BeanUtils.populate(instance, map); return insta原创 2022-03-14 16:43:02 · 773 阅读 · 0 评论 -
final修饰符
final修饰符是Java语言中比较简单的一个修饰符,但也是一个被"误解"较多的修饰符.对很多Java程序员来说,何时使用final修饰符,使用final修饰符后对程序有何影响...这些问题其实他们并不清楚,即使把某些书上的概念背诵得很流利.1.final可以修饰变量,被final修饰的变量被赋初始值之后,不能对它重新赋值.2.final可以修饰方法,被final修饰的方法不能被重写.原创 2016-12-29 11:31:39 · 235 阅读 · 0 评论 -
父,子类的类变量
父子类的类变量基本与父子实例在内存中分配类似.不同的是,类变量属于类本身,而实例变量则属于Java对象;类变量在类初始化阶段完成初始化,而实例变量则在对象初始化阶段完成初始化.由于类变量本质上属于类本身,因此通常不会涉及父子实例变量那样复杂的情形,但由于Java允许通过对象来访问类变量,因此也可以使用super作为限定来访问父类中定义的类变量.package com.lic.array;原创 2016-12-29 11:22:02 · 373 阅读 · 0 评论 -
内存中子类实例
前面已经介绍:当通过引用变量来访问它所引用对象的实例变量时,该实例变量的值取决于声明该变量时所用的类型.现在的问题是:Drived对象在内存中到底如何存储?很明显它有两个不同的count实例变量,这意味着必须用两块内存保存它们.package com.lic.array;public class Demo18 { public static void main(String[] a原创 2016-12-28 17:38:35 · 271 阅读 · 0 评论 -
继承成员变量和继承方法的区别
继承是面向对象的3大特征之一,也是Java语言的重要特性,而父,子继承关系则是Java编程中需要重点注意的地方.下面将继续深入分析父子实例的内存控制.几乎所有Java书籍,资料都会介绍:当子类继承父类时,子类会获得父类中定义的成员变量和方法.当访问权限允许的情况下,子类可以直接访问父类中定义的成员变量和方法.这种介绍其实稍嫌笼统,因为Java继承中对成员变量的方法的处理是不同的.原创 2016-12-26 09:52:32 · 506 阅读 · 0 评论 -
调用被子类重写的方法
在访问权限允许的情况下,子类可以调用父类方法,这是因为子类继承父类会获得父类定义的成员变量和方法;但父类不能调用子类的方法,因为父类根本无从知道它将被哪个子类继承,它的子类将会增加怎样的方法.但有一种特殊情况,当子类方法重写了父类方法后,父类表面上只是调用属于自己的,被子类重写的方法,但随着执行context的改变,将会变成父类实际调用子类的方法.下面程序中定义了两个具有父子关系的类Ani原创 2016-12-16 16:58:44 · 2029 阅读 · 0 评论 -
父类构造器的隐式调用和显式调用
当调用某个类的构造器来创建Java对象时,系统总会先调用父类的非静态初始化块进行初始化.这个调用是隐式执行的,而且父类的静态初始化块总是会被执行.接着会调用父类的一个或多个构造器执行初始化,这个调用既可以是通过super进行显式调用,也可以是隐式调用.当所有父类的非静态初始化块,构造器一次调用完成后,系统调用本类的非静态初始化块,构造器执行初始化,最后返回本类的实例.假设有如此的类继承结构原创 2016-12-14 11:59:27 · 1150 阅读 · 0 评论 -
实例变量的初始化时机
类体内定义的变量被称为成员变量.如果定义该成员变量时没有使用static修饰,该成员变量又被成为非静态变量或实例变量;如果使用了static修饰,则该成员变量又可被成为静态变量或类变量.对于实例变量而言,它属于Java对象本身,每次程序创建Java对象时都需要为实例变量分配内存空间,并执行初始化.从程序运行的角度来看,每次创建Java对象都会为实例变量分配内存空间,并对实例变量执行原创 2016-12-13 15:03:26 · 592 阅读 · 3 评论 -
访问子类对象实例变量
子类的方法可以访问父类的实例变量,这是因为子类继承父类就会获得父类的成员变量和方法;但父类的方法不能访问子类的实例变量,因为父类根本无从知道它将被哪个子类继承.它的子类将会增加怎样的成员变量.但是,在极端的情况下,可能出现父类访问子类变量的情况.如下所示:package com.lic.array;public class Demo14 { public static void m原创 2016-12-16 09:32:36 · 413 阅读 · 0 评论 -
数组与内存的控制
1.1数组初始化使用数组之前必须先对数组对象进行初始化,当数组的所有元素均被分配合适内存空间,并指定了初始值时,数组初始化完成.java的数组是静态的,一旦为数组初始化完成,数组元素的内存空间分配即结束,程序只能改变数组元素的值,而无法改变数组的长度.1.1.1Java数组是静态的因为Java数组变量是一种引用类型的变量,数组变量并不是数组本身,它只是指向堆内存中的数组对象.因此,原创 2016-12-07 17:40:24 · 403 阅读 · 0 评论 -
类变量的初始化时机
实例变量属于Java类本身,只有当程序初始化该Java类时才会为该类的类变量分配内存空间,并执行初始化.从程序运行的角度来看,每JVM对一个Java类只初始化一次,因此Java程序每运行一次,系统只为类变量分配一次内存空间,执行一次初始化.从语法角度来看,程序可以在2个地方对类变量执行初始化:1)定义类变量时指定初始值;2)静态初始化块中对类变量指定初始值.这两种方式的执行顺序原创 2016-12-13 17:33:58 · 483 阅读 · 1 评论 -
final修饰的变量
被final修饰的实例变量必须显式指定初始值,而且只能在如下3个位置指定初始值.1.定义final实例变量时指定初始值;2.在非静态初始化块中为final实例变量指定初始值;3.在构造器中为final实例变量指定初始值.对于普通实例变量,Java程序可以对它执行默认的初始化,也就是将实例变量的值指定为默认的初始值0或null;但对于final实例变量,则必须由程序显式指定初始值.原创 2016-12-29 16:47:23 · 2338 阅读 · 0 评论 -
关于java项目打包
我们有一个java项目,年前的时候,我们将它转为了maven项目使用maven来打包部署,一直都没有成功.运行时,我们需要的是class文件和引用的jar包.项目中,class文件都在bin目录下,jar都在lib目录下.将bin和lib拷出来.把lib文件夹放到bin目录下.在bin中打开dos窗口,使用java命令来运行含有main方法的主类.java -cp .;./lib/* com.原创 2017-02-08 10:21:38 · 348 阅读 · 0 评论 -
String的hashCode
hashCode方法源码: /** * Returns a hash code for this string. The hash code for a * {@code String} object is computed as * <blockquote><pre> * s[0]*31^(n-1) + s[1]*31^(n...原创 2019-09-20 09:52:16 · 253 阅读 · 0 评论 -
导出csv文件用excel打开避免科学计数法
解决办法:1、在生成csv的时候,在数字的前面或后面加上"\t"制表符,再用excel打开问题解决!如 “1234567890 ”2、在生成csv的时候,在数字的前面加上"=",再用excel打开问题解决!如 =“9876543210”,=“1234567890”,...原创 2019-09-10 13:56:16 · 2038 阅读 · 0 评论 -
CountDownLatch
https://blog.csdn.net/shihuacai/article/details/8856370CountDownLatch类介绍一个同步辅助类,在完成一组正在其他线程中执行的操作之前,它允许一个或多个线程一直等待。用给定的计数 初始化 CountDownLatch。由于调用了 countDown() 方法,所以在当前计数到达零之前,await 方法会一直受阻塞。之后,会释...原创 2019-06-11 14:14:58 · 205 阅读 · 0 评论 -
多线程重排序
重排序重排序是指编译器和处理器为了优化程序性能而对指令序列进行重新排序的一种手段。数据依赖性如果两个操作访问同一个变量,且这两个操作中有一个为写操作,此时这两个操作之间就存在数据的依赖性。名称代码实例说明写后读a = 1; b = a;写完一个变量之后,再读这个位置写后写a = 1; a = 2; ;写完一个变量之后,再写这个变量读后写a = b...原创 2019-05-15 14:22:56 · 365 阅读 · 2 评论 -
AtomicInteger的使用
AtomicInteger的应用package com.today.service.financereport.generator.reportimport java.util.concurrent.atomic.AtomicInteger/** * running generator counter */object Counter { /** * 同时正在导...原创 2019-04-15 22:25:56 · 891 阅读 · 0 评论 -
Understanding Java 9 Modules
article https://www.oracle.com/corporate/features/understanding-java-9-modules.html什么是模块?模块化是在包之上添加的更高级别的聚合。这个新的与元素的关键字是module–唯一的命名,可重用的相关包组,和资源文件是一样的(例如图片,xml文件)。下面是module的结构描述: - the module’s ...翻译 2018-03-06 17:42:10 · 217 阅读 · 0 评论 -
在java中使用OpenCV 进行全景图切割与拼接
参考资料 http://blog.csdn.net/qq_30832659/article/details/52494713环境配置下载opencv3.0 http://nchc.dl.sourceforge.net/project/opencvlibrary/opencv-win/3.0.0/opencv-3.0.0.exe 配置系统环境变量 将上一步下载文件解压后,大概得到2....原创 2018-03-19 17:33:32 · 4859 阅读 · 6 评论 -
Java SE 9 新特性简介
Java Language Changes for Java SE 9https://docs.oracle.com/javase/9/language/toc.htm#JSLAN-GUID-B06D7006-D9F4-42F8-AD21-BF861747EDCF模块化关于模块化的内容可以看前两篇文章 这些更新都只是简单概述,具体如何使用还需要自己去实践,感受更新之后的好处。...原创 2018-03-13 10:59:01 · 1260 阅读 · 0 评论 -
Project Jigsaw:Module System Quick-Start Guide
Project Jigsaw:Module System Quick-Start Guidehttp://openjdk.java.net/projects/jigsaw/quick-start 这篇文章提供了一个简单的示例,让开发者上手modules.lunix系统中,文件路径使用/,分隔符使用:。Windows系统中,文件路径使用, ;作为路径分隔符。我这里的操作是在windows系...原创 2018-03-08 20:13:25 · 319 阅读 · 0 评论 -
关于SimpleDateFormat安全的时间格式化线程安全问题
想必大家对SimpleDateFormat并不陌生。SimpleDateFormat 是 Java 中一个非常常用的类,该类用来对日期字符串进行解析和格式化输出,但如果使用不小心会导致非常微妙和难以调试的问题,因为 DateFormat 和 SimpleDateFormat 类不都是线程安全的,在多线程环境下调用 format() 和 parse() 方法应该使用同步代码来避免问题。下面我们通转载 2016-10-11 17:06:38 · 304 阅读 · 0 评论 -
List集合中的对象根据属性排序
集合类List存放的数据,默认是按放入时的顺序存放的.比如,依次放入A,B,C, 则取出的顺序也是A,B,C.实际场景中,我们有时需要根据自定义规则对List集合中的元素进行排序,怎么实现呢?我们可以通过实现Comparator接口来自定义排序规则.实现它的public int compara(Object o1, Object o2)方法,然后使用Conllections的sort方法来进行原创 2016-07-27 15:14:14 · 1063 阅读 · 2 评论 -
统计在线用户数以及同账号登录踢出另一用户
写一个session属性监听器:定义两个map,一个存session,以用户编号为key;一个存用户信息,也以用户编号为key.map的个数就是在线用户数.每个用户登录时,先检查map中是否存在,如果不存在,就新增到map里面去,如果存在,就通过用户编号找对应session使其失效.再将当前登录用户信息写入到map里面.package com.sunshine.monitor.comm.f原创 2016-06-03 17:15:01 · 1706 阅读 · 0 评论 -
自定义泛型方法及其应用
学东西是用别人的,再做东西给别人用,现在我们来自己定义泛型给别人用。java的泛型是从c++中借鉴来的,我们由c++的模板函数引入自定义泛型。如下函数的结构很相似,仅类型不同int add(int x, int y) { return x+y;}float add (float x, float y) { return x+y;}double add (double原创 2014-10-31 07:34:00 · 657 阅读 · 0 评论 -
BeanUtils工具包
1.导入jar包BeanUtils.jar原创 2014-10-13 23:44:37 · 685 阅读 · 2 评论 -
文件的编码
package com.imooc.io;import java.io.UnsupportedEncodingException;public class EncodeDemo { public static void main(String[] args) throws UnsupportedEncodingException { String str = "李程lch";原创 2014-10-25 00:10:29 · 575 阅读 · 0 评论 -
File类常用API介绍
太困了,代码中有详细注释原创 2014-10-25 01:11:38 · 588 阅读 · 0 评论 -
导入Excel
前面利用poi实现了导出excel,现在再来实现导入功能。基本思路是前台页面原创 2014-08-14 14:34:05 · 1027 阅读 · 0 评论 -
使用poi导出excel并调整样式
上一篇实现了基本的导出功能,这一片原创 2014-08-11 16:25:14 · 1643 阅读 · 0 评论 -
poi导出excel
利用poi导出excel的基本思路是创建一个原创 2014-08-11 14:17:42 · 632 阅读 · 2 评论 -
java定时任务
固定的时间间隔执行任务原创 2014-08-21 17:42:50 · 618 阅读 · 0 评论 -
项目参数工具类
这个类主要用于读取properties文件中原创 2014-09-04 18:04:27 · 674 阅读 · 0 评论 -
泛型
当编译器编译完后,将会去掉类型信息。不同了类型的ArrayList对象调用getClass()用“==”来比较,结果为true。意味着得到的是同一份字节码。参数化类型与原始类型是兼容的,Collection c = new Vector(); 可以通过编译。Collection c = new Vector(); 也可以通过编译。参数化类型不考虑类型参数的继承关系,Colectio原创 2014-10-31 07:10:32 · 417 阅读 · 1 评论 -
JavaBean的内省操作
1.什么是javaBean?拥有getter/setter方法。对于原创 2014-10-12 14:10:37 · 558 阅读 · 0 评论 -
注解入门
注解就相当于一个你的源程序中要调用的一个类,要在源程序中应用没某个注解,得先准备好这个注解类,就像你要调用某个类,得先有开发好这个类。注解用@interface来定义@Retention元注解,其有三种取值:RetetlonPolicy.SOURCE、RetetlonPolicy.CLASS、RetetlonPolicy.RUNTIME.分别对应:java源文件-->class文件原创 2014-10-18 01:23:07 · 592 阅读 · 2 评论 -
编写和测试自己写的类加载器
1.写一个ClassLoaderAttachment类继承Date作为测试用的class文件。package com.lch.day2;import java.util.Date;public class ClassLoaderAttachment extends Date { public String toString(){ return "hello,itcast"; }原创 2016-03-28 23:22:20 · 1211 阅读 · 0 评论 -
自定义类加载器的编写原理
模板方法设计模式父类-->loadClass/findClass/得到class文件的转换成字节码-->defineClass子类1 (自己干)子类2 (自己干)自己干的代码不一样,但是找父类的流程是一样的。由于流程的细节父类无法确定,就把它空出来,由子类自己写。自定义类加载器首先继承抽象类ClassLoader.重写findClass方法,并使用defineCla原创 2016-03-07 21:40:47 · 362 阅读 · 0 评论 -
java类加载器
一、什么是类加载器?类加载器就是加载类的工具,当我们在java程序里面用到一个类,jvm首先将java的字节码.class文件加载到内存里面去,通常这些字节码是放在 classpath目录下。二、jvm中的三个类加载器jvm中可以安装过个类加载器,系统默认提供了三个主要的类加载器,每个类加载器负责加载特定位置的类。类加载器也是java类,它是由BootStrap类加载器加载的。Bo原创 2016-03-07 21:29:32 · 300 阅读 · 0 评论