java
hrw1234567890
菜鸡求教
展开
-
Java的责任链模式
代码package ChainOfResposibility;/* * 一个关于请假的责任链模式的请假程序 * 封装请假的基本信息 */public class LeaveRequest { private String name; private int leavedays; private String reason; public LeaveRequest(St......原创 2018-08-30 13:00:50 · 361 阅读 · 1 评论 -
2020-12-08
项目笔记mall中使用的技术mall采用现阶主流技术实现,涵盖了一般项目中几乎所有使用的技术。技术 版本 说明 Spring Boot 2.3.0 容器+MVC框架 Spring Security 5.1.4 认证和授权框架 MyBatis 3.4.6 ORM框架 MyBatisGenerator 1.3.3 数据层代码生成 PageHelper 5.1.8 MyBatis物理分页插件 Swagg翻译 2020-12-08 11:52:29 · 183 阅读 · 0 评论 -
lambda表达式——java8必看
java8 的新特性之lambda表达式在 java8 中,有很多新特性,如lambda表达式,这个表达式可称之为闭包,是java8发布的最重要的新特性,lambda表达式可以将函数作为一个方法的参数,我们知道,在之前的java程序中,函数一般是需要定义方法来实现的,将函数实现过程定义在方法中带来的缺点就是程序过于繁琐,不利于开发者进行函数开发,使用lambda函数表达式可以使代码变得更加的紧凑。lambda的函数表达式的语法格式也贯彻java一贯简洁的风格,(parameters)->ex原创 2020-11-09 10:05:33 · 182 阅读 · 0 评论 -
spring框架基础之一
认识 Spring 框架Spring 框架是 Java 应用最广的框架,它的成功来源于理念,而不是技术本身,它的理念包括IoC (Inversion of Control,控制反转)和AOP(Aspect Oriented Programming,面向切面编程)。什么是 Spring:Spring 是一个轻量级的 DI / IoC 和 AOP 容器的开源框架,来源于 Rod Jo...原创 2020-02-08 14:59:22 · 183 阅读 · 0 评论 -
file类详解
java.io.File类:代表文件和目录。在开发中,读取文件,生成文件,删除文件,修改文件的属性时经常会用到本类。File类的常见构造方法:public File(String pathname) 以路径为路径创建文件对象,如果路径是相对路径,则默认的当前路径在系统属性user.dir来中存储,如示例8-21所示。【示例8-21】文件的创建import java.io.File;pu...原创 2019-07-11 18:28:00 · 219 阅读 · 0 评论 -
包装类缓存的问题
整型、char类型所对应的包装类,在自动装箱时,对于-128~127之间的值会进行缓存处理,其目的是提高效率。 缓存处理的原理为:如果数据在-128~127这个区间,那么在类加载时就已经为该区间的每个数值创建了对象,并将这256个对象存放到一个名为cache的数组中。每当自动装箱过程发生时(或者手动调用valueOf()时),就会先判断数据是否在该区间,如果在则直接获取数组中对应的包装类对象的...原创 2019-07-11 17:21:19 · 473 阅读 · 1 评论 -
矩形检测原理
游戏中,多个元素是否碰到一起,实际上,通常是用“矩形检测”原理实现的。 我们在前面提到,游戏中所有的物体都可以抽象成“矩形”,我们只需判断两个矩形是否相交即可。对于一些复杂的多边形、不规则物体,实际上是将他分解成多个矩形,继续进行矩形检测。 Java的API中,为我们提供了Rectangle类来表示矩形相关信息,并且提供了intersects()方法,直接判断矩形是否相交。 我们在前面设...原创 2019-07-10 18:12:43 · 2663 阅读 · 0 评论 -
双缓存区技术
上个版本,我们实现了动画效果,但是发现窗口会不停的闪烁,体验度非常差。在实际开发中,绘制图形是非常复杂的,绘图可能需要几秒甚至更长时间,也经常发生闪烁现象, 为了解决这个问题,我们通常使用“双缓冲技术”。 “双缓冲技术”的绘图过程如下: 1、在内存中创建与画布一致的缓冲区 2、在缓冲区画图 3、将缓冲区位图拷贝到当前画布上 4、释放内存缓冲区 双缓冲即在内存中创建...原创 2019-07-10 17:41:32 · 530 阅读 · 0 评论 -
初始化三种方式
数组的初始化方式总共有三种:静态初始化、动态初始化、默认初始化。下面针对这三种方式分别讲解。1. 静态初始化 除了用new关键字来产生数组以外,还可以直接在定义数组的同时就为数组元素分配空间并赋值。【示例7-4】静态初始化数组 1 2 int[]a={1,2,3};//静态初始化基本类型数组; Man[]man...原创 2019-07-10 16:20:38 · 3789 阅读 · 0 评论 -
通用分代的垃圾回收机制
分代垃圾回收机制,是基于这样一个事实:不同的对象的生命周期是不一样的。因此,不同生命周期的对象可以采取不同的回收算法,以便提高回收效率。我们将对象分为三种状态:年轻代、年老代、持久代。JVM将堆内存划分为 Eden、Survivor 和 Tenured/Old 空间。 1. 年轻代 所有新生成的对象首先都是放在Eden区。 年轻代的目标就是尽可能快速的收集掉那些生命周期短的对象,对应的...原创 2019-07-10 14:23:36 · 143 阅读 · 0 评论 -
Java虚拟机内存的简单理解
Java虚拟机的内存可以分为三个区域:栈stack、堆heap、方法区method area。栈的特点如下: 1. 栈描述的是方法执行的内存模型。每个方法被调用都会创建一个栈帧(存储局部变量、操作数、方法出口等) 2. JVM为每个线程创建一个栈,用于存放该线程执行方法的信息(实际参数、局部变量等) 3. 栈属于线程私有,不能实现线程间的共享! 4. 栈的存储特性是“先...原创 2019-07-10 14:06:59 · 118 阅读 · 0 评论 -
基本类型的数据溢出的问题
int money = 1000000000; //10亿int years = 20;//返回的total是负数,超过了int的范围int total = money*years;System.out.println("total="+total);//返回的total仍然是负数。默认是int,因此结果会转成int值,再转成long。但是已经发生//了数据丢失long total1...原创 2019-07-10 09:07:31 · 1081 阅读 · 0 评论 -
BigDecimal
我们知道,在Java中,浮点数是不精确的,所以不能用来进行比较,若使用比较会出现错误,所以我们要使用BigDecimal进行准确的比较。下面数对BigDecimal进行的使用方法以及他的作用BigDecimal bd = BigDecimal.valueOf(1,0);bd = bd.subtract(BigDecimal.valueOf(0,1));bd = bd.subtract...原创 2019-07-10 09:03:24 · 166 阅读 · 0 评论 -
list浅谈
List是有序、可重复的容器。 有序:List中每个元素都有索引标记。可以根据元素的索引标记(在List中的位置)访问元素,从而精确控制这些元素。 可重复:List允许加入重复的元素。更确切地讲,List通常允许满足 e1.equals(e2) 的元素重复加入容器。 除了Collection接口中的方法,List多了一些跟顺序(索引)有关的方法,参见下表:...原创 2019-07-12 19:23:14 · 202 阅读 · 0 评论 -
关于Java虚拟机的浅显理解
面相对象目前已经渗透到了软件开发的各个领域,;例如OOA(面向对象的分析),OOD(面向对象的设计),OOP(面向对象的编程)。c#,c++,PHP,Python。 Java的体系结构主要是Java编程语言、字节码、JavaAPI和Java虚拟机等四部分独立且相关的技术组成。 字节码的编译原理,字节码其实就是相...原创 2018-08-30 09:46:16 · 153 阅读 · 0 评论 -
Java 代理
代理模式的核心作用就是通过代理,控制对对象的访问。这跟实际中是一样的,比如说明星都有经纪人,这就是一个代理,比如有人要找某明星拍戏,那么首先处理这事的是他的经纪人,虽然拍戏需要自己拍,但是拍戏前后的一些必须要做的事等等,都由这个经纪人来处理。 在程序中也是如此,通过代理,可以详细控制访问某个或者某类对象的方法,在调用这个方法前做前置处理,调用这个方法后做后置处理。这也是AOP的实现原理。 ...翻译 2018-08-24 11:56:35 · 108 阅读 · 0 评论