
Java基础
文章平均质量分 75
大鹏的世界
天道酬勤!分布式+大数据架构解决方案
展开
-
方法在执行过程中在JVM中的内存分配
1.方法只定义,不调用,是不会执行的,也并不会在JVM中给他分配“运行所属”内存空间调用的时候才会动态的给这个方法分配所属的内存空间2.内存划分上主要有三块主要的内存空间方法区内存堆内存栈内存3.关于栈数据结构:栈 stack数据结构反映的是数据的存储形态。常见的数据结构:数组队列栈链表二叉树哈希表/散列表······1.栈帧永远指向栈顶元素2.栈顶元素处于活跃状态,其他元素静止3. 压栈/入栈/push 弹栈/出栈/pop4.栈数据结构存储数据的特.原创 2021-12-15 08:39:28 · 215 阅读 · 0 评论 -
maven内置变量
一个优秀的构建系统必须足够灵活,应该能够让项目在不同的环境下都能成功构建。maven为了支持构建的灵活性,内置了三大特性,即:属性、profile和资源过滤。maven属性maven属性分6类:1. 内置属性内置属性:如${basedir}表示项目根目录,${version}表示项目版本。2. POM属性<project> <modelVersion>4.0.0</modelVersion> <groupId>org.so转载 2021-07-17 14:50:12 · 3487 阅读 · 0 评论 -
Maven常用参数及其说明
Maven常用参数及其说明-h,--help Display help information-am,--also-make 构建指定模块,同时构建指定模块依赖的其他模块;-amd,--also-make-dependents 构建指定模块,同时构建依赖于指定模块的其他模块;-B,--batch-mode 以批处理(batch)模...原创 2021-07-13 19:03:26 · 953 阅读 · 0 评论 -
Mybatis-Plus 实践汇总
// 案例先展示需要完成的SQL语句,后展示Wrapper的写法// 1. 名字中包含佳,且年龄小于25 // SELECT * FROM user WHERE name like '%佳%' AND age < 25 QueryWrapper wrapper = new QueryWrapper<>(); wrapper.like("name", "佳").lt("age", 25); List users = userMapper.selectList(wrapper);//原创 2021-06-24 10:27:46 · 305 阅读 · 0 评论 -
JAVA匿名内部类(Anonymous Classes)
1.前言匿名内部类在我们JAVA程序员的日常工作中经常要用到,但是很多时候也只是照本宣科地用,虽然也在用,但往往忽略了以下几点:为什么能这么用?匿名内部类的语法是怎样的?有哪些限制?因此,最近,我在完成了手头的开发任务后,查阅了一下JAVA官方文档,将匿名内部类的使用进行了一下总结,案例也摘自官方文档。感兴趣的可以查阅官方文档(https://docs.oracle.com/javase/tutorial/java/javaOO/anonymousclasses.html)。2.匿名内部类匿名内原创 2021-06-01 15:33:44 · 294 阅读 · 0 评论 -
Java中的嵌套类(nested Class)内部类(inner Class)匿名类(Anonymous Class)
/** * 扑克类(一副扑克) */public class Poker { private static String[] suites = {"黑桃", "红桃", "草花", "方块"}; private static int[] faces = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13}; private Card[] cards; /** * 构造器 */ public Poker(.原创 2021-05-31 15:13:16 · 1270 阅读 · 0 评论 -
Java修饰符汇总
final:final可以修饰:属性,方法,类,局部变量(方法中的变量)final修饰的属性的初始化可以在编译期,也可以在运行期,初始化后不能被改变。final修饰的属性跟具体对象有关,在运行期初始化的final属性,不同对象可以有不同的值。final修饰的属性表明是一个常数(创建后不能被修改)。final修饰的方法表示该方法在子类中不能被重写,final修饰的类表示该类不能被继承。对于基本类型数据,final会将值变为一个常数(创建后不能被修改);但是对于对象句柄(亦可称作引用或者原创 2021-05-31 10:36:25 · 155 阅读 · 0 评论 -
千万不要这样使用 Arrays.asList !
使用Arrays.asList()的原因无非是想将数组或一些元素转为集合,而你得到的集合并不一定是你想要的那个集合。而一开始asList()的设计时用于打印数组而设计的,但jdk1.5开始,有了另一个比较更方便的打印函数Arrays.toString(),于是打印不再使用asList(),而asList()恰巧可用于将数组转为集合。错误用法如果你这样使用过,那你要注意下了。错误一将基本类型数组作为asList的参数int[] arr = {1,2,3};List list = Ar原创 2021-05-27 13:56:10 · 410 阅读 · 1 评论 -
isNotEmpty,isNotBlank,isEmpty,isBlank的区别与使用
isNotEmpty(str)判断不为空等价于 str != null && str.length > 0。isNotBlank(str)判断不为空,且长度不为0,且不由空白符(whitespace)构成等价于 str != null && str.length > 0 && str.trim().length > 0。isEmpty(str)判断为空等价于 str == null || str.length..原创 2021-05-27 09:09:59 · 718 阅读 · 0 评论 -
Java IO和Java NIO在文件拷贝上的性能差异分析
1. 在JAVA传统的IO系统中,读取磁盘文件数据的过程如下:以FileInputStream类为例,该类有一个read(byte b[])方法,byte b[]是我们要存储读取到用户空间的缓冲区。参看read(byte b[])方法的源码,可知,它会在内部再调用readBytes(b, 0, b.length)方法,而且readBytes(b, 0, b.length)方法是一个native方法(即本地方法),最终通过这个本地方法来发起一次系统调用,即调用系统内核的read()方法,内...原创 2021-05-26 13:48:02 · 125 阅读 · 0 评论 -
java中的浅拷贝(浅复制)和深拷贝(深复制)
浅拷贝: 浅拷贝又称为浅复制,浅克隆,浅拷贝是指拷贝时只拷贝对象本身(包括对象中的基本变量),而不拷贝对象包含的引用所指向的对象,拷贝出来的对象的所有变量的值都含有与原来对象相同的值,而所有对其他对象的引用都指向原来的对象,简单地说,浅拷贝只拷贝对象不拷贝引用。深拷贝: 深拷贝又称为深复制,深克隆,深拷贝不仅拷贝对象本身,而且还拷贝对象包含的引用所指向的对象,拷贝出来的对象的所有变量(不包含那些引用其他对象的变量)的值都含有与原来对象的相同的值,那些引用其他对象的变量将指向新复制...原创 2021-05-24 16:08:22 · 12339 阅读 · 3 评论 -
实体类(VO,DO,DTO,PO)的划分
常常会接触到VO,DO,DTO的概念,本文从领域建模中的实体划分和项目中的实际应用状况两个角度,对这几个概念进行简析。html得出的主要结论是:在项目应用中,VO对应于页面上须要显示的数据(表单),DO对应于数据库中存储的数据(数据表),DTO对应于除两者以外须要进行传递的数据。java1、实体类mysql百度百科中对于实体类的定义以下:算法实体类的主要职责是存储和管理系统内部的信息,它也能够有行为,甚至很复杂的行为,但这些行为必须与它所表明的实体对象密切相关。sql根据以上定义,咱们能原创 2021-05-18 11:19:46 · 1761 阅读 · 2 评论 -
static、final、static final的区别
final: final可以修饰属性,方法,类,局部变量(方法中的变量) final修饰的属性的初始化可以在编译期,也可以在运行期,初始化后不能被改变。 final修饰的属性跟具体对象有关,在运行期初始化的final属性,不同对象可以有不同的值。 final修饰的属性表明是一个常数(创建后不能被修改)。 final修饰的方法表示该方法在子类中不能被重写; final修饰的类表示该类不能被继承。 对于基本类型数据,final会将值变为一个常原创 2021-05-11 14:53:15 · 151 阅读 · 0 评论 -
JAVA 8 函数式接口( java.util.function 详解)
java 8 函数式接口简介函数式接口(Functional Interface)是Java 8对一类特殊类型的接口的称呼。 这类接口只定义了唯一的抽象方法的接口,并且这类接口使用了@FunctionalInterface进行注解。在jdk8中,引入了一个新的包java.util.function, 可以使java 8 的函数式编程变得更加简便。这个package中的接口大致分为了以下四类:Function: 接收参数,并返回结果,主要方法R apply(T t) Consumer: 接收参.原创 2021-04-18 22:05:07 · 2834 阅读 · 1 评论 -
Java占位符清单及详解
String类的format()方法用于创建格式化的字符串以及连接多个字符串对象。熟悉C语言的同学应该记得C语言的sprintf()方法,两者有类似之处。format()方法有两种重载形式。format(String format, Object... args) 新字符串使用本地语言环境,制定字符串格式和参数生成格式化的新字符串。format(Locale locale, String format, Object... args) 使用指定的语言环境,制定字符串格式和参数生成格式化的字符串。原创 2021-04-14 09:40:34 · 4878 阅读 · 0 评论 -
SpringBoot之HandlerInterceptor拦截器
HandlerInterceptor简介拦截器我想大家都并不陌生,最常用的登录拦截、或是权限校验、或是防重复提交、或是根据业务像12306去校验购票时间,总之可以去做很多的事情。我仔细想了想这里我分三篇博客来介绍HandlerInterceptor的使用,从基本的使用、到自定义注解、最后到读取body中的流解决无法多次读取的问题。1、定义实现类定义一个Interceptor 非常简单方式也有几种,我这里简单列举两种1、类要实现Spring 的HandlerInterceptor 接口2、类继原创 2021-03-29 23:32:50 · 515 阅读 · 0 评论 -
彻底搞清拦截器、过滤器、监听器的区别-原理篇
一、引言本来想记录一下关于用户登陆和登陆之后的权限管理、菜单管理的问题,想到解决这个问题用到Interceptor,但想到了Interceptor,就想到了Filter,于是就想说一下它们的执行顺序和区别。关于Interceptor解决权限和菜单管理的问题,在放在下一篇写吧,就酱紫。二、区别1、过滤器(Filter)首先说一下Filter的使用地方,我们在配置web.xml时,总会配置下面一段设置字符编码,不然会导致乱码问题:<filter> <filter-name..原创 2021-03-29 22:59:17 · 720 阅读 · 0 评论 -
Spring Boot程序中@JsonIgnoreProperties与@JsonIgnore基本使用
问题由来:springboot项目中定义了很多类,我们在rest返回中直接返回或者在返回对象中使用这些类,spring已经使用jackson自动帮我们完成这些的to json。但是有时候自动转的json内容太多,或者格式不符合我们的期望,因此需要调整类的to json过程,或者说希望自定义类的json过程。在rest返回过程中进行处理解决办法:使用@JsonIgnoreProperties、@JsonIgnore、@JsonFormat。@JsonIgnore注解用来忽略某些字段,可以用在变量或原创 2021-03-26 20:56:28 · 395 阅读 · 0 评论 -
数字的格式化
@Test public void test3() { DecimalFormat df = new DecimalFormat(); double data = 1234.56789; //格式化之前的数字 //1、定义要显示的数字的格式(这种方式会四舍五入) String style = "0.0"; df.applyPattern(style); System.out.println("...原创 2021-03-26 20:49:44 · 672 阅读 · 0 评论 -
BigInteger和BigDecimal 大数处理
大数操作正常情况下一个整数最多只能放在long类型之中,但是如果现在有如下的一个数字:1111111111111111111111111111111111111111111111111根本就是无法保存的,所以为了解决这样的问题,在java中引入了两个大数的操作类:操作整型:BigInteger操作小数:BigDecimal当然了,这些大数都会以字符串的形式传入。BigInteger如果在操作的时候一个整型数据已经超过了整数的最...原创 2021-03-26 20:47:28 · 247 阅读 · 0 评论