![](https://img-blog.csdnimg.cn/20200130201645378.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Java基础
文章平均质量分 74
万丈高楼平地起,掌握Java基础,才能盖起软件的大楼。
架构帅
JAVA工程师
展开
-
自定义注解+aop实现-快速上手
本文不介绍spring aop的基础知识,只演示实现一个自定义注解的流程,但是读者应该对注解的基本概念,切面、切点、通知等的基本概念有所了解。项目基于Spring boot+maven+java8项目需求我想要在某些controller方法中记录请求日志,包括ip,方法,请求入参,返回结果,执行耗时等等。那么我们可以通过自定义一个注解实现,加在需要打印日志的方法上即可。项目结构首先展示一下项目的基本结构:项目的pom文件:<?xml version="原创 2021-08-02 17:21:55 · 1510 阅读 · 0 评论 -
在Java8的foreach()中使用return/break/continue
今天使用lambda表达式处理集合时,发现对return、break以及continue的使用有点迷惑,于是自己动手测试了一下,才发现在使用foreach()处理集合时不能使用break和continue这两个方法,也就是说不能按照普通的for循环遍历集合时那样根据条件来中止遍历,而如果要实现在普通for循环中的效果时,可以使用return来达到,也就是说如果你在一个方法的lambda表达式中使用return时,这个方法是不会返回的,而只是执行下一次遍历,看如下的测试代码:List<String&转载 2021-06-30 15:47:41 · 982 阅读 · 0 评论 -
XXL-JOB执行器注册成功但是在管理界面里不显示
场景描述:在配置正确,调度中心和执行器启动成功的情况下,在管理界面原创 2021-05-31 15:11:24 · 7290 阅读 · 3 评论 -
Java 8 stream的详细用法
一、概述Stream 是 Java8 中处理集合的关键抽象概念,它可以指定你希望对集合进行的操作,可以执行非常复杂的查找、过滤和映射数据等操作。使用Stream API 对集合数据进行操作,就类似于使用 SQL 执行的数据库查询。也可以使用 Stream API 来并行执行操作。简而言之,Stream API 提供了一种高效且易于使用的处理数据的方式。特点:1 . 不是数据结构,不会保存数据。2. 不会修改原来的数据源,它会将操作后的数据保存到另外一个对象中。...转载 2021-05-19 13:51:52 · 406 阅读 · 0 评论 -
RBAC权限系统分析、设计与实现
最近,因为项目上需要设计实现一个权限管理模块,所以专门整理总结了RBAC的一些知识。目前,使用最普遍的权限管理模型正是RBAC(Role-Based Access Control)模型,这篇文章也主要是介绍基于RBAC的权限管理系统,我会从RBAC是什么、如何设计RBAC两部分来介绍。一、RBAC是什么1、RBAC模型概述RBAC模型(Role-Based Access Control:基于角色的访问控制)模型是20世纪90年代研究出来的一种新模型,但其实在20世纪70年代的多用户计算时期,转载 2021-05-06 15:47:59 · 461 阅读 · 0 评论 -
java map初始化并赋值
第一种方式:static 块public class MapTest { private static final Map<String, String> myMap = new HashMap<String, String>(); static { myMap.put("张三", "北京"); myMap.put("李四", "上海"); }}最常规的初始化方式。第二种方式:双括号初始化 (匿名内部类).原创 2021-02-02 11:56:29 · 30043 阅读 · 4 评论 -
微服务架构-- REST与RPC比较与应用场景
1.1.1REST与RPC概念什么是RESTREST是一种架构风格,指的是一组架构约束条件和原则。满足这些约束条件和原则的应用程序或设计就是 RESTful。REST规范把所有内容都视为资源,网络上一切皆资源。REST并没有创造新的技术,组件或服务,只是使用Web的现有特征和能力。可以完全通过HTTP协议实现,使用 HTTP 协议处理数据通信。REST架构对资源的操作包括获取、创建、修改和删除资源的操作正好对应HTTP协议提供的GET、POST、PUT和DELETE方法。HTTP动词...转载 2021-01-18 17:32:10 · 600 阅读 · 0 评论 -
Java 中初始化 List 集合的 6 种方式
List 是 Java 开发中经常会使用的集合,你们知道有哪些方式可以初始化一个 List 吗?这其中不缺乏一些坑,今天栈长我给大家一一普及一下。1、常规方式List<String> languages = new ArrayList<>();languages.add("Java");languages.add("PHP");languages.add("Python");System.out.println(languages);这种就是我们平常用的最多最转载 2021-01-11 16:27:45 · 516 阅读 · 0 评论 -
Java使用Collections查找List中最大值、最小值
在开发当中,有时候我们需要查找List中的最大值,最小值。虽然可以自己写代码遍历,但是有轮子可用的情况下,直接用轮子方便的多。在Java中使用Collections查找List中最大值、最小值如下: public static void main(String[] args) { List<Integer> list = new ArrayList<>(); list.add(1); list.add(5);原创 2021-01-07 16:44:26 · 5290 阅读 · 2 评论 -
Java多态的概念、原理和实践
一、概念多态性是指允许不同子类型的对象对同一消息作出不同的响应。简单的说就是用同样的对象引用调用同样的方法但是做了不同的事情。原创 2020-11-10 16:55:49 · 533 阅读 · 0 评论 -
List,Set,Map能否存储null
List常用的List又ArrayList和LinkedList。 @Test public void testList(){ List arrayList = new ArrayList(); arrayList.add(null); arrayList.add(null); System.out.println(arrayList.size()); List linkedList = new Lin原创 2020-11-06 16:25:34 · 5636 阅读 · 0 评论 -
JVM 字节码指令手册 - 查看 Java 字节码
目录一、JVM 指令分类(1)操作数栈(2)运算与转换(3)条件转移(4)类与数组(5)调度与返回加finally二、JVM 指令集表jdk 进行的编译生成的 .class 是 16 进制数据文件,不利于学习分析。通过下命令javap -c Demo.class > Demo.txt或者其他方式可反汇编,得到字节码文件一、JVM 指令分类(1)操作数栈过程 符号 变量到操作数栈 iload, iload_, lload, lloa转载 2020-08-29 22:10:13 · 273 阅读 · 0 评论 -
JConsole连接远程服务器方法
jconsole远程连接,必须配置JMX连接参数linux 启动项目时,添加参数java -Djava.rmi.server.hostname=10.160.13.111 #远程服务器ip,即本机ip-Dcom.sun.management.jmxremote #允许JMX远程调用-Dcom.sun.management.jmxremote.port=3214 #自定义jmx 端口号-Dcom.sun.management.jmxremote.ssl=false # 是否需要ssl转载 2020-08-27 16:57:23 · 619 阅读 · 0 评论 -
一文详解Java类初始化顺序
本文将介绍三种情形下的类初始化顺序。一、普通类Java类:Animal.javapackage ztt.继承接口多态.执行顺序测试;public class Animal { private static String name = "动物"; private String a = "hello"; public Animal() { System.out.println("构造方法!"); } static {...原创 2020-08-11 17:46:40 · 240 阅读 · 0 评论 -
shiro SecurityUtils.getSubject()深度分析
1.总的来说,SecurityUtils.getSubject()是每个请求创建一个Subject, 并保存到ThreadContext的resources(ThreadLocal<Map<Object, Object>>)变量中,也就是一个http请求一个subject,并绑定到当前线程。问题来了:.subject.login()登陆认证成功后,下一次请求如何知道是那个用户的请求呢?友情提示:本文唯一可以读一下的就是分析这个疑问,如果你已经明白就不用往下看了。首先给出内...转载 2020-08-10 20:44:08 · 1836 阅读 · 0 评论 -
Java 之 Serializable 序列化和反序列化的概念,作用的通俗易懂的解释
遇到这个 Java Serializable 序列化这个接口,我们可能会有如下的问题a,什么叫序列化和反序列化b,作用。为啥要实现这个 Serializable 接口,也就是为啥要序列化c,serialVersionUID 这个的值到底是在怎么设置的,有什么用。有的是1L,有的是一长串数字,迷惑ing。我刚刚见到这个关键字 Serializable 的时候,就有如上的这么些问题。在处理...转载 2020-05-06 09:45:08 · 180 阅读 · 0 评论 -
Java实现根据地址调用高德地图获取经纬度等信息
最近在做一个车辆调度的应用系统,需要根据车辆和站点的位置做相应的规划,因此要调用第三方的地图接口来获取经纬度等信息。这里,我选择的是高德平台,下面是一个从注册到简单使用的例子,可供大家学习参考,更深入的使用,大家可参考官网学习。1、关于高德开放平台高德开放平台的网址:http://lbs.amap.com/注册账号:如果之前没有注册过账号,先注册账号。2、创建应用注册号账号,登...原创 2020-04-22 16:12:24 · 5574 阅读 · 0 评论 -
java空指针异常:预防及解决办法
这是我16年在博客园发的一篇博客,彼时还在学校。慕然回首,无尽感慨。一.什么是java空指针异常 我们都知道java是没有指针的,这里说的"java指针"指的就是java的引用,我们不在这里讨论叫指针究竟合不合适,而只是针对这个异常本身进行分析。空指针就是空引用,java空指针异常就是引用本身为空,却调用了方法,这个时候就会出现空指针异常。可以理解,成员变量和方法是属于对象的(除...原创 2020-02-11 11:26:27 · 3123 阅读 · 0 评论 -
TimeUnit类详解及其常见用法(详解timedWait、sleep方法)
一、是什么 TimeUnit 表示给定单元粒度的时间段。TimeUnit是java.util.concurrent下面的一个枚举类,它提供在给定单元中进行跨单元转换和执行计时及延迟操作的实用工具方法。二、枚举类常量详细信息1、NANOSECONDS:纳秒2、MICROSECONDS:微妙3、MILLISECONDS:毫秒4、SECONDS:秒5、MINUTES:分...原创 2020-02-15 09:10:55 · 17722 阅读 · 0 评论 -
详解BigDecimal及其加减乘除运算
目录一、BigDecimal概述二、构造函数详解1、BigDecimal(int val)2、BigDecimal(intval, MathContextmc)3、BigDecimal(longval)4、BigDecimal(longval, MathContextmc)5、BigDecimal(BigIntegerval)6、BigDecima...原创 2020-01-30 19:59:06 · 103327 阅读 · 0 评论 -
java泛型入门详解
1 为什么使用泛型为什么使用泛型?首先,我们必须知道什么是泛型。泛型,简单来说,就是将类型参数化,即用一个参数来代表类型。比方说,在学习泛型之前,我们定义的变量都是指明了具体类型的,如String str定义了字符串类型的str, Integre num;定义了整型的num等(包括Object类型)。那么学习了泛型之后,我们就可能会定义类似T a;这种不指明具体类型的变量。a的类型随着传入参...原创 2019-12-17 21:37:36 · 1748 阅读 · 0 评论 -
Java集合全面解析
java集合的使用极其频繁,文章将从总体上对集合进行描述,主要介绍集合分类、常见的集合、集合之间的区别等。1集合和数组的区别(1)长度区别。数组长度不可变,集合长度可变。(2)内容区别。数组可以存储基本数据类型和对象引用,集合只能存储对象引用。(3)数组只能存储同一类型的元素,集合可以存储不同类型的元素。2Java集合体系间的继承关系Java 集合框架主要包...原创 2019-12-17 21:33:42 · 1909 阅读 · 0 评论