![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java基础
托尼吴
退役大厂架构师
展开
-
JAXB注解的使用详解(用户xml和bean之间的操作)
一、 JAXB是什么?JAXB(即Java Architecturefor XML Binding)是一个业界的标准,即是一项可以根据XML Schema产生Java类的技术。该过程中,JAXB也提供了将XML实例文档反向生成Java对象树的方法,并能将Java对象树的内容重新写到XML实例文档。二;相关注解的解释1) @XmlType该注解用在class类上,常与@XmlRootElement,@XmlAccessorType一起使用。它有三个属性:name、pro...原创 2020-11-06 17:28:25 · 1118 阅读 · 0 评论 -
CompletableFuture原理解析和使用
一:原理说明原理说了没啥用,先了解一下怎么用,先体会使用的过程,再去了解原理当前假若有一个任务正在执行,需要创建异步执行任务: 这个事交给异步线程去完成,主线程可以去做其他任务,这个异步线程任务可以将结果返回,主线程不需要阻塞等待获取结果Callable,有结果的同步行为,Runnable,无结果的同步行为,Future,异步封装Callable/Runnable,CompletableFuture,封装Future,二:使用使用一:当前假若有一个任务正在执行,需..原创 2020-09-09 19:58:59 · 3142 阅读 · 3 评论 -
java反射机制详解 及 Method.invoke getDeclareMethod解释
package kai.wu.dhwerbo.jol;import java.lang.reflect.InvocationTargetException;import java.lang.reflect.Method;/** * * * GOOK LUCK * * * * @Author: wkn * @Date: 2020/8/14. * @DESC: */public class MethInvoke { public void add() { .原创 2020-08-14 17:10:23 · 467 阅读 · 0 评论 -
聊聊Java对象在内存中的大小
本文讨论的Java对象在内存中的大小指的是在堆(Heap)中的大小;未特殊说明,提到JVM的地方都指的是:Java HotSpot(TM) 64-Bit Server VM,版本:1.8.0_131。 Java中Object的组成: Object = Header + Primitive Fields + Reference Fields + Alignment & Padding` Header由两部分组成:标记部分(Mark Word)和原始对象引用(Klass Pointe原创 2020-09-08 14:52:41 · 198 阅读 · 0 评论 -
java泛型在方法的使用
(1) 如果你定义了一个泛型(类、接口),那么Java规定,你不能在所有的静态方法、静态初块等所有静态内容中使用泛型的类型参数。例如:public class A<T> { public static void func(T t) { //报错,编译不通过 }}(2) 如何在静态内容(静态方法)中使用泛型,更一般的问题是,如果类(或者接口)没有定义成泛型,但是...转载 2018-05-08 15:36:52 · 8773 阅读 · 0 评论 -
RecursiveTask和RecursiveAction的使用 以及java 8 并行流和顺序流
什么是Fork/Join框架 Fork/Join框架是Java7提供了的一个用于并行执行任务的框架, 是一个把大任务分割成若干个小任务,最终汇总每个小任务结果后得到大任务结果的框架。 我们再通过Fork和Join这两个单词来理解下Fork/Join框架,Fork就是把一个大任务切分为若干子任务并行的执行,Join就是合并这些子任务的执行结果,最后得到这个大任务的结果。...原创 2018-06-19 14:20:37 · 21951 阅读 · 2 评论 -
通过AOP实现Controller层设置统一的入参校验
package com.xgn.cms.aop;import org.aspectj.lang.JoinPoint;import org.aspectj.lang.annotation.Aspect;import org.aspectj.lang.annotation.Before;import org.aspectj.lang.annotation.Pointcut;import o...原创 2018-06-19 16:26:26 · 2875 阅读 · 0 评论 -
获取list中最小值,最大值
@Testpublic void istfhTes() { List<Integer> list = new ArrayList<>( ); list.add( 1 ); list.add( 8 ); list.add( 0 ); list.add( 9 ); list.add( 100 ); list.add(9...原创 2018-06-26 13:51:36 · 6999 阅读 · 0 评论 -
判断当前时间是否存在某个时间段内
/** * 获取活动状态,该活动是否正在进行(不仅活动上线,还需要该活动正在运行) * @return */public Boolean chechPromotionActiveStatus(RespBargainPriceActivityDetail req) { logger.info( "RespBargainPriceActivityDetail{}"+req ); ...原创 2018-06-27 16:17:59 · 1277 阅读 · 0 评论 -
@PreUpdate 和@PrePersist
@PreUpdate用于为相应的生命周期事件指定回调方法。 该注释可以应用于实体类,映射超类或回调监听器类的方法。 用于setter 如果要每次更新实体时更新实体的属性,可以使用@PreUpdate注释。 使用该注释,您不必在每次更新用户实体时显式更新相应的属性。 preUpdate不允许您更改您的实体。 您只能使用传递给事件的计算的更改集来修改原始字段值。 如果你检查数据库,你会看到,Pe...原创 2018-07-24 15:15:29 · 7419 阅读 · 0 评论 -
java io 的理解
Java中IO流的体系结构如图 Java流类的类结构图 1:FileFile 类是 IO 包中唯一代表磁盘文件本身的对象,File 类定义了一些与平台无关的方法 来操纵文件,通过调用 File 类提供的各种方法,我们能够创建、删除文件,重命名文件, 判断文件的读写权限及是否存在,设置和查询文件的最近修改时间。 在 Java 中,目录也被当作 File 使用,只是多了一些...原创 2018-12-12 19:19:01 · 639 阅读 · 0 评论 -
java8反射创建对象
创建类package classlode;/** * * * GOOK LUCK * * * * @Author by wukainian, * @Date on 2019/2/22. */public class Systemlike { public Systemlike(String name) { this...原创 2019-02-22 19:07:31 · 1272 阅读 · 0 评论 -
java中的取整与四舍五入
一.java中取整数的方式1.直接使用强制转换public static void roundOne(){ System.out.println("正数:(int)10.12 = " + (int)10.12); System.out.println("负数:(int)-10.12 = " + (int)-10.12); System....原创 2019-05-09 15:14:52 · 10567 阅读 · 0 评论 -
JAVA 之 IO流总结
操作文件类 File在整个io中唯一与文件自身有关的类就是File构造方法如下Public File(String pathName)从上可以知道。实例化这个类必须要文件路径例如:我要操作d盘下的test.txt文件就要加上这个文件的路径“d:\\text.txt” “\\”表示一个”\”package com.example.jpa.tes...原创 2019-08-16 22:03:31 · 221 阅读 · 0 评论 -
AOP 实现用户操作记录和防止重复提交
1:记录用户操作记录 实现思路: 利用aop,可以拦截每个用户调用的灭个接口,将每个接口的名称,用户ip 用户名记录下来 1.1:定义切点 private RedisDao redisDao; @Pointcut("execution(* kainian.wu.demoweb.controller.*.*(..))") public void poi...原创 2019-08-28 12:57:39 · 483 阅读 · 2 评论 -
Map集合
Map操作的一对对象,map中的元素都使用key--value的形式储存在集合中。Map的接口定义如下Map.Entry是map内部定义的接口Map.Entry是map内部接口。可以通过类目点内部类的方式访问,1:HashMap/** *map */public static void test06() { Map<String,String> m = new HashM...原创 2018-03-28 16:45:43 · 142 阅读 · 0 评论 -
抽象类与接口的应用
在将这个专题知识前我想简单的说一下抽象类与接口的概念和定义:抽象类: 在java中我们学习了继承,可以对一个类进行增强和扩展,被增强或者扩展的类成为父类,新的类类就是子类,其实在java中对于增强或者扩张一个类不仅仅只有继承,有一种专门用来当父类的类我们成为抽象类,简而言之,抽象类创造出来的意义就是用于被其他类继承,一个子类只能继承一个父类,这成为单继承,java中只有单继承1:包含...原创 2018-03-18 21:54:48 · 339 阅读 · 0 评论 -
java常用的几种设计模式
一 工厂模式 工厂模式从字面可以理解,就是我们需要某个实例,不需要一个个去new出来,而是通过某个工厂批量产生,这样设计的好处就是如果某个类被替换,那么在客户端我们不需要改动,只要在工场类中去修改,降低了类之间的依赖性。代码实例:package com.example.springboot_test.test;/** * com.xinguangnet.tuchao.merch...原创 2018-03-19 15:43:26 · 191 阅读 · 0 评论 -
Object类 和 包装类
在java中所有类的父类都是Object ,其实在我们平时创建一类时默认会去继承Object 只是没有显示而已。 class O { }class O extends Object{} 以上两个写法都是一样的,Object类中提供了很多方法,简单列举几个常用的方法如下图。在我们实际开发中,最好是重写Object类中的quals() hashCode 和toStrin...原创 2018-03-19 19:25:35 · 1229 阅读 · 0 评论 -
JAVA中的反射机制
一 :认识Class类在正常情况下,需要有一个类的完整路径引入之后才能产生一个类的实例,但是在java中,直接通过类可完成,这就是Class的功能,实例:所有类的对象实际上都是Class的实例,Class类常用的方法如下Class的使用如果要想通过Class类本身实例去操作其他类对象,可以通过newInstance()方法,但是必须保证实例化类有一个无惨的构造方法public static voi...原创 2018-03-29 19:39:15 · 220 阅读 · 0 评论 -
动态代理
在静态代理中,一个一个代理只能为一个接口服务,这样一来程序开发中必然会产生过多代理,最好的做法是通过一个代理完成所有的代理功能。那么这个时候就用到了动态代理。/** * 取得类加载器 */public static void test01() { Persion persion = new Persion( ); System.out.println("类加载器"); ...原创 2018-03-30 11:37:17 · 103 阅读 · 0 评论 -
观察者模式
package com.example.springboot_test.test;import java.util.Observable;import java.util.Observer;/** * com.xinguangnet.tuchao.merchant.manage * * @Author : Wukn * @Date : 2018/2/5 *//** * ...原创 2018-03-21 20:46:58 · 105 阅读 · 0 评论 -
java原始定时任务运用
实例:package com.example.jpa.test;import org.junit.Test;import javax.persistence.EntityManagerFactory;import javax.persistence.Persistence;import java.text.SimpleDateFormat;import java.util.Date;...原创 2018-03-21 21:06:50 · 182 阅读 · 0 评论 -
字符串去掉特殊字符
/** * 特殊字符校验 * @param str * @return */public static boolean isSpecialChar(String str) { String regEx = "[ _`~!@#$%^&*()+=|{}':;',\\[\\].<>/?~!@#¥%……&*()——+|{}【】‘;:”“’。,、?]|\n|\r...原创 2018-03-26 19:10:23 · 4142 阅读 · 0 评论 -
包装类转换问题
转换关系:基本类型------>包装器类Integer obj=new Integer(145);包装器类------>基本类型int num=obj.intValue();字符串------>包装器类Integer obj=new Integer("-45.36");包装器类------>字符串包装器类String str=obj.toString();字符串------...原创 2018-04-02 10:20:23 · 510 阅读 · 0 评论 -
StringUtils类方法详解
org.apache.commons.lang.StringUtils中方法的操作对象是java.lang.String类型的对象,是JDK提供的String类型操作方法的补充,并且是null安全的(即如果输入参数String为null则不会抛出NullPointerException,而是做了相应处理,例如,如果输入为null则返回也是null等,具体可以查看源代码)。 除了构造器,String...原创 2018-04-02 14:14:15 · 254 阅读 · 0 评论 -
字符编码
java编辑简介在计算机的世界里,任何文字都是以指定的编码方式存在的,在java的程序开发中,最常见的是ISO8859-1,GBK/GB2312unicode UTF编码。在程序开发中,如果出现编码不一致就会出现乱码问题,乱码就一段你看不到的奇怪符号。每个计算机都有自己的编码方法,如果两台编码不一样的计算机交流就无法实现,就相当于一个人说汉语,一个人说英文,。得到本机的编码:public cla...原创 2018-03-27 15:48:58 · 197 阅读 · 0 评论 -
对象序列化 Serializable
对象序列化就是把一个对象变为二进制的数据流的一种方法,通过对象序列化,可以方便的实现对象的传输和储存如果一个对象想要实现序列化,就要实现Serializable接口,改接口如下改接口没有任何方法,所有此接口是一个标识,标识这个类具备了序列化的能力。package com.example.jpa.test;import java.io.Serializable;/** * com.xing...原创 2018-03-27 18:43:25 · 326 阅读 · 0 评论 -
集合只能存在引用类型数据
java集合如Map、Set、List等所有集合只能存放引用类型数据,它们都是存放引用类型数据的容器,不能存放如int、long、float、double等基础类型的数据。1. 集合存储对象Java集合中实际存放的只是对象的引用,每个集合元素都是一个引用变量,实际内容都放在堆内存或者方法区里面,但是基本数据类型是在栈内存上分配空间的,栈上的数据随时就会被收回的。2. 基本类型数据如何解决呢?可以通...转载 2018-03-28 14:58:22 · 2429 阅读 · 0 评论 -
集合的遍历
Collection接口是集合类的根接口,Java中没有提供这个接口的直接的实现类。但是却让其被继承产生了两个接口,就是Set和List。Set中不能包含重复的元素。List是一个有序的集合,可以包含重复的元素,提供了按索引访问的方式。Map是Java.util包中的另一个接口,它和Collection接口没有关系,是相互独立的,但是都属于集合类的一部分。Map包含了key-value对。Map不...原创 2018-03-28 15:06:33 · 508 阅读 · 0 评论 -
判断一个字符串是否为空(null)或者是空字符串(“”)的方法和总结
首先需要理解null和“”的区别null表示这个字符串在栈中没有任何指向因此在堆中没有分配内存空间,如果要调用这个字符串会出现空指针异常 `String str = null`;这个str是空,没有被实例化,在栈中没有任何指向。 null表示这个字符串没有任何指向,因为null没有分配空间,“”在堆中分配了内存空间。 判断一个对象是否是空“” 用eques() 判断一个字符串是否是null 用...原创 2018-03-14 18:09:24 · 66402 阅读 · 10 评论