java基础
文章平均质量分 84
jdk及计算机基础相关
leo_messi94
这个作者很懒,什么都没留下…
展开
-
四大函数式接口
在上一篇文章中Lambda表达式得好处与语法,我们知道使用Lambda表达式是需要使用函数式接口的,那么,岂不是在我们开发过程中需要定义许多函数式接口,其实不然,java8其实已经为我们定义好了4类内置函数式接口,这4类接口其实已经可以解决我们开发过程中绝大部分的问题,只有一小部分比较特殊得情况需要我们自己去定义函数式接口,本文就简单来学习一下java8内置得4大核心函数式接口:Function<T, R>函数型接口传入一个参数T,返回R:示例:public static void m原创 2020-07-17 20:39:55 · 1788 阅读 · 1 评论 -
java8接口新特性--default、static方法
123原创 2019-11-05 16:28:52 · 183 阅读 · 0 评论 -
Stream流式计算
什么是Stream流计算大数据:存储+计算集合、Mysql本质是存储东西的。计算都应该交给流来操作。示例:/** * 现有5个用户,筛选: * 1. ID偶数的 * 2. 年纪大于23岁 * 3. 用户名转为大写字母 * 4. 用户名字母倒排序 * 5. 只输出一个用户 */public class Test { public static void main(String[] args) { User u1 = new User(1, "a", 21);原创 2020-07-17 20:58:41 · 910 阅读 · 0 评论 -
Lambda表达式
为什么要使用Lambda表达式:避免匿名内部类定义过多可以让代码看起来更简洁去掉了一堆没有意义的代码,只留下核心的逻辑函数式接口:理解函数式接口是学习lambda表达式的关键所在。函数式接口定义:任何接口,如果只包含唯一一个抽象方法,那么它就是一个函数式接口对于函数式接口,我们可以通过lambda表达式来创建该接口的对象示例:示例一:public class TestLambda1 { // 3.静态内部类 static class Like2 implemen原创 2020-07-15 00:04:28 · 83 阅读 · 0 评论 -
位运算符(逻辑、移位)详解
位运算符有七个,分为两类:逻辑位运算符:位与(&)、位或(|)、位异或(^)、非位(~)移位运算符:左移()、无符号右移(>>>)原创 2023-03-16 14:37:29 · 1974 阅读 · 0 评论 -
原码、反码和补码介绍及为什么用补码计算
在学习原码, 反码和补码之前, 需要先了解机器数和真值的概念.原创 2023-03-15 17:44:38 · 1290 阅读 · 7 评论 -
@RequestBody注解接收实体对象时,部分属性为null的问题
今天在用RequestBody接收参数时,2个字段一直为null,接收不到,开头以为是字段的问题,因为这2个字段都是对象,后来经过原文章,才发现是命名的问题。原来的DTO对象:@Datapublic class VVotePrizeAddDTO implements Serializable { private Long voteId; /** * 是否设置奖品 0否1是 */ private Boolean usePrize; /**原创 2020-10-10 08:35:16 · 3579 阅读 · 2 评论 -
window中更换jdk版本不生效
本机已经安装了jdk1.7,而比较早期的项目需要依赖jdk1.6,于是同时在本机安装了jdk1.6和jdk1.7.安装jdk1.6前,执行java -version得到C:\Users\liuxiang2>java -versionjava version “1.7.0_21”Java™ SE Runtime Environment (build 1.7.0_21-b11)Java HotSpot™ Client VM (build 23.21-b01, mixed mode, sharin转载 2020-06-17 23:30:16 · 324 阅读 · 0 评论 -
枚举详解
jdk5中添加了新的枚举类型,枚举往往被我们的项目广泛的用于类型、状态等。以前一直觉得枚举很简单,没什么好玩的,最近在写深入研究设计模式时,搞不懂为什么枚举可以实现单例,所以想要彻底的学习一下枚举。使用:枚举主要用来定义常量如状态,类型。定义一个视频枚举,视频有2个状态:审核和发布状态。public enum VideoStatus { CHECK(1, "审核"), ONLINE(2, "发布"); private Integer value; private Strin原创 2020-05-27 10:58:13 · 155 阅读 · 0 评论 -
比较版本号大小
适用于用.分隔的形式,如2.2.2的格式; /** * 比较APP版本号的大小 * <p> * 1、前者大则返回一个正数 * 2、后者大返回一个负数 * 3、相等则返回0 * * @param version1 app版本号 * @param version2 app版本号 * @return int */ public static int compareAppVersion(String version1, String version2转载 2020-05-13 18:31:36 · 573 阅读 · 0 评论 -
Integer.highestOneBit(i)详解
在查看HashMap源码的过程中,发现用到了Integer.highestOneBit(i)这个函数调用。使用的第一感觉就是这个函数是干什么用的,通过查看文档得知,这个函数的作用是取 i 这个数的二进制形式最左边的最高一位且高位后面全部补零,最后返回int型的结果。首先来补充一点背景知识。1、在计算机系统中,数值一律使用补码来表示和存储。主要原因是使用补码可以将符号位和其它位统一处理...转载 2020-04-30 16:34:01 · 399 阅读 · 0 评论 -
break和continue跳出多重循环
关于break和continue,众所周知,break是跳出当前循环,continue是跳出本次循环。但是在多重循环中,我们可能会模糊概念:break是跳出全部循环还是只是某层循环?–>跳出的是break所在层的循环即当前循环。结论:只要记住,break和continue只对当层循环有用,对外层循环没有影响。跳出单层循环:例:public static void main (Str...原创 2020-04-01 16:48:10 · 11731 阅读 · 0 评论 -
内部类(一)
内部类:可以将一个类的定义放在另一个类的定义内部。一:内部类基础内部类一般可以分为四种:成员内部类、局部内部类、匿名内部类和静态内部类。1. 成员内部类:成员内部类是最普通的内部类,定义在另一个类的内部:public class CommonInnerClass { class Contents { private int i = 11; publ...原创 2020-01-08 01:28:50 · 72 阅读 · 0 评论 -
获取指定范围内的随机数
int num = new Random().nextInt(max - min + 1) + min;原创 2019-12-26 18:00:47 · 254 阅读 · 0 评论 -
springboot自定义注解+拦截器完成Token+签名校验
一:为什么需要使用校验请求校验可以保证数据通信时的安全性:防止参数被篡改判断登录用户是否合法(虽然你是你,但是你还需要门票(token)才能进入)请求的唯一性(防止恶意重复提交–爬虫、网络攻击等)二:工作流程不加校验:获取一个列表:http://api.XXX.com/getproductList?id=value1这种方式,只需要一个url调用者就可以获取到数据列表,导致数...原创 2019-11-04 20:16:03 · 3310 阅读 · 0 评论 -
java.lang.UnsupportedOperationException解决方法
在项目中对List进行操作时报错java.lang.UnsupportedOperationException,后来发现操作的List是由数组转换而成的,通过看源码发现问题,并写测试程序如下。代码块:public class ListTest { public static void main(String[] args) { String[] array = {"1"...转载 2019-10-25 17:14:36 · 419 阅读 · 0 评论 -
springboot项目中导入第三方jar时,打jar包时不包含第三方jar包问题
假设在我们目录中添加了第三方jar包:我们要想使用这些jar包,首先需要在pom文件中引用: <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <ver...原创 2019-10-24 15:21:42 · 842 阅读 · 0 评论