![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java基础
文章平均质量分 90
刘架构
我从不给自己退路
展开
-
面试官: 你知道 JWT、JWE、JWS 、JWK嘛?
这些东西看上很凌乱,但是非常紧凑,并且是可打印的主要用于验证签名的真实性。JWS ,也就是JWT Signature,其结构就是在之前nonsecure JWT的基础上,在头部声明签名算法,并在最后添加上签名。创建签名,是保证jwt不能被他人随意篡改。为了完成签名,除了用到header信息和payload信息外,还需要算法的密钥,也就是secret。当利用非对称加密方法的时候,这里的secret为私钥。为了方便后文的展开,把JWT的密钥或者密钥对,统一称为JSON Web Key,也就是JWK。原创 2023-02-26 19:06:52 · 1862 阅读 · 0 评论 -
Java 锁 高频 面试题回答
之前面了几个开发,问了关于锁的知识都是一问三不知 ,也许是业务场景中出现的比较少,所以这些人只能回答出一些基础的线程方面的知识,之前也看了些书,做一些记录 ,所以和大家分享一下。原创 2023-02-27 07:00:00 · 1983 阅读 · 0 评论 -
分布式服务的接口幂等性如何设计
操作完成后,释放掉锁,因为幂等问题,通常是一个请求快速过来两次或者多次,所以在释放锁之前让后来的同一个用户的请求,直接失败即可,保证当前方法在短时间之内只能被执行一次,切记控制锁的粒度。然后用户在前端上操作的时候,不知道为啥,总之就是一个砍一个订单 不小心发起了两次砍一刀请求,然后这俩请求分散在了这个服务部署的不同的机器上,结果造成一个用户被砍了扣两次。所谓幂等性,就是说一个接口,多次发起同一个请求,你这个接口得保证结果是准确的,比如不能多扣款,不能多插入一条数据,不能将统计值多加了1。原创 2023-02-22 23:45:08 · 1047 阅读 · 0 评论 -
Java-多线程-增强篇-锁 强化 第一篇
AQS定义了一套多线程访问共享资源的同步器框架,很多同步器的实现都依赖AQS。如ReentrantLock、Semaphore、CountDownLatch …原创 2023-02-22 06:15:00 · 688 阅读 · 0 评论 -
浅谈低代码平台发展趋势
Yesr Ok 大家好 ,我是小刘发展趋势今天借此平台,和大家浅谈我对互联网应用的发展趋势因为我也接触过 非常多的语言和技术 ,之前都是一知半解,不敢妄加评论,但是随着时间的推移,现在的我,已经成为了一名有经验的小白了 哈哈!废话不多说了,开始正题吧早期咱们接触的 都是 单体应用 ,最早的 EJB 技术, JSP界面啦,后面 各种框架取代了它 ,SSH SSM 啥啥的, 也不能说取代,只是用的人少了而已,那个时代我没经历过,但是自己尝试写过crud ,前端从最开始的html cs.原创 2021-04-09 07:55:28 · 10145 阅读 · 0 评论 -
小白 也能听懂Hadoop到底是什么!
缘起呆在舒适区太久了,最近学了下大数据,正好总结,复习一下,用一个小故事来带出Hadoop是什么 !有一天 ,我的朋友小扬 在看 某老师的视频 ,他刚开始看的时候,查找没什么难度,一般利用搜索引擎下载下来,然后放在磁盘里, 双击就可以播放,但后面看的老师越来越多,于是整个资源也就越来越来,加上,小扬是个怀旧的人,看完之后就不想删,于是资源越来越多,这个时候,小扬想着,干脆自己写个程序吧,这样找某老师就能快些, 说时迟,那时快, 小扬打开 IDE ,一顿乱敲 ,使用 Java的 Swing ,最后原创 2021-03-01 23:16:01 · 3440 阅读 · 5 评论 -
数据结构-链表深度刨析
欧克!欧克!小刘今天带大家来学习一下链表 ,你要是学不会,你来捶我文章目录1、链表(Linked List)介绍1.1、内存结构1.2、逻辑结构1.3、链表特点2、链表应用场景2.1、水浒英雄榜2.2、链表节点定义2.3、链表定义2.4、遍历链表2.4.1、代码思路2.4.2、代码实现2.5、尾部插入2.5.1、代码思路2.5.2、代码实现2.6、按顺序插入2.6.1、代码思路2.6.2、代码实现2.7、修改节点信息2.7.1、代码思路2.7.2、代码实现2.8、删除节点2.8.1、代码思路2.8.2、.原创 2020-12-09 21:39:28 · 1977 阅读 · 0 评论 -
Java通俗易懂30天 第29天:Java8新特性精讲
文章目录文章目录文章目录第16章 Java8的其它新特性Java8概述Java8新特性的好处并行流与串行流Lambda表达式Lambda表达式使用举例Lambda表达式语法的使用1Lambda表达式语法的使用2函数式(Functional)接口函数式接口的介绍Java内置的函数式接口介绍及使用举例方法引用与构造器引用方法引用的使用情况1方法引用的使用情况2方法引用的使用情况3构造器引用与数组引用的使用强大的Stream APIStream API的概述Stream的实例化Stream的中间操作:筛选与切片原创 2020-09-22 08:39:20 · 539 阅读 · 0 评论 -
Java通俗易懂30天 第28天:反射机制
文章目录文章目录文章目录第15章 Java反射机制Java反射机制概述使用反射,实现同上的操作反射的强大:调用类的私有结构理解Class类并获取Class实例Class类的理解获取Class实例的4种方式Class实例对应的结构的说明类的加载与ClassLoader的理解了解:类的加载过程; 了解:什么时候会发生类初始化?ClassLoader的理解使用ClassLoader加载配置文件通过反射,创建运行时类的对象举例体会反射的动态性获取运行时类的完整结构提供结构丰富Person类获取运行时类的属性结构及原创 2020-09-22 08:39:39 · 1396 阅读 · 0 评论 -
Java通俗易懂30天 第24天: 集合(中)
文章目录文章目录文章目录第11章Java集合Collection子接口之二:Set接口Set接口实现类的对比Set的无序性与不可重复性的理解HashSet中元素的添加过程关于hashCode()和equals()的重写重写hashCode() 方法的基本原则重写equals() 方法的基本原则Eclipse/IDEA工具里hashCode()的重写LinkedHashSet的使用TreeSet的自然排序TreeSet的定制排序TreeSet的课后练习Set课后两道面试题Map接口Map接口及其多个实现类的原创 2020-09-21 15:29:25 · 789 阅读 · 0 评论 -
Java通俗易懂30天 第25天: 集合(下)
文章目录文章目录文章目录第12章 泛型为什么要有泛型在集合中使用泛型举例练习自定义泛型结构自定义泛型类举例自定义泛型类泛型接口的注意点自定义泛型方法举例举例泛型类和泛型方法的使用情境泛型在继承上的体现通配符的使用使用通配符后数据的读取和写入要求有限制条件的通配符的使用泛型应用举例泛型嵌套实际案例自定义泛型类练习全部源码:https://github.com/name365/JavaSE-30Day第12章 泛型为什么要有泛型泛型:标签举例:中药店,每个抽屉外面贴着标签超市.原创 2020-09-20 18:47:31 · 1112 阅读 · 0 评论 -
Java通俗易懂30天 第30天:Java9- 14 新特性
文章目录文章目录文章目录Java 9 的新特性JDK 9 的发布jdk目录结构的改变java9新特性:模块化系统java9新特性:Java的REPL工具:jshellJShell相关命令; java.lang.IllegalAccessException: class org.junit.runners.BlockJUnit4ClassRunner (in module junit) cannot access class github2.JDK10Test (in module day13) beca原创 2020-09-19 11:12:31 · 968 阅读 · 0 评论 -
Java通俗易懂30天 第26天:IO流
文章目录文章目录文章目录第13章 IO流File类的使用File类的实例化File类的常用方法1File类的常用方法2课后练习IO流原理及流的分类IO流原理; 流的分类IO 流体系节点流(或文件流)FileReader读入数据的基本操作FileReader中使用read(char[] cbuf)读入数据FileWriter写出数据的操作使用FileReader和FileWriter实现文本文件的复制使用FileInputStream不能读取文本文件的测试使用FileInputStream和FileOutp原创 2020-09-21 21:11:16 · 1402 阅读 · 0 评论 -
Java通俗易懂30天 第23天: Java集合(上)
文章目录文章目录第11章Java集合Java 集合框架概述集合框架与数组的对比及概述集合框架涉及到的APICollection接口方法Collection接口中的常用方法1Collection接口中的常用方法2Collection接口中的常用方法3Collection接口中的常用方法4Iterator迭代器接口使用Iterator遍历Collection迭代器Iterator的执行原理Iterator遍历集合的两种错误写法Iterator迭代器remove()的使用新特性foreach循环遍历集合或数组C.原创 2020-09-18 23:02:32 · 1094 阅读 · 0 评论 -
Java通俗易懂30天 第22天: 枚举类与注解
Java学习路线:day1 Java语言概述原文:https://shimo.im/docs/9VpyTVDkHD3j3P8D/ 《第1章Java语言概述》第1章Java语言概述1.1 软件开发介绍• 软件开发软件,即一系列按照特定顺序组织的计算机数据和指令的集合。有系统软件和应用软件之分。• 人机交互方式• 图形化界面(Graphical User Interface GUI)这种方式简单直观,使用者易于接受,容易上手操作。• 命令行方式(Command Line Interface CLI原创 2020-09-18 22:58:52 · 570 阅读 · 0 评论 -
Java通俗易懂30天 第21天: Java 常用类(下)
文章目录文章目录文章目录第9章Java常用类JDK 8之前的日期时间API( `这节给我整蒙了!!!` )SimpleDateFormat的使用SimpleDateFormat的练习Calendar日历类的使用JDK8中日期时间API的介绍LocalDate、LocalTime、LocalDateTime的使用Instant类的使用DateTimeFormatter的使用其它日期时间相关API的使用参考:与传统日期处理的转换Java比较器概述Comparable自然排序举例自定义类实现Comparabl原创 2020-09-18 08:32:48 · 303 阅读 · 0 评论 -
Java通俗易懂30天 第20天: Java 常用类(上)
文章目录文章目录文章目录第9章Java常用类字符串相关的类String类的概述理解String的不可变性String不同实例化方式的对比String不同拼接操作的对比String使用陷阱String的一道面试题JVM中涉及字符串的内存结构String的常用方法1String的常用方法2String的常用方法3回顾String与基本数据类型包装类的转换String与char[]之间的转换String与byte[]之间的转换面试中String算法考查的说明StringBuffer和StringBuilder.原创 2020-09-17 08:12:46 · 522 阅读 · 0 评论 -
Java通俗易懂30天 第19天:多线程(下)
文章目录文章目录文章目录第8章 多线程线程的生命周期线程的同步同步代码块处理实现Runnable的线程安全问题同步代码块处理继承Thread类的线程安全问题同步方法处理实现Runnable的线程安全问题同步方法处理继承Thread类的线程安全问题线程安全的单例模式之懒汉式死锁的问题Lock锁方式解决线程安全问题线程的通信sleep()和wait()的异同经典例题:生产者/消费者问题JDK5.0新增线程创建方式创建多线程的方式三:实现Callable接口使用线程池的好处创建多线程的方式四:使用线程池..原创 2020-09-16 20:38:29 · 1207 阅读 · 0 评论 -
Java通俗易懂30天 第18天:多线程(上)
文章目录文章目录第8章 多线程基本概念:程序、进程、线程进程与线程使用多线程的优点何时需要多线程线程的创建和使用线程的创建和启动Thread类API中创建线程的两种方式创建多线程的方式一:继承Thread类创建过程中的两个问题说明练习1Thread类的有关方法线程的调度; 线程的优先级练习2练习3创建多线程的方式二:实现Runnable接口继承方式和实现方式的联系与区别补充:线程的分类文章目录全部源码:https://github.com/name365/JavaSE-30Day第8章 多线程.原创 2020-09-16 20:38:05 · 1165 阅读 · 0 评论 -
Java通俗易懂30天 第16天: 异常处理
文章目录文章目录文章目录第五章 异常处理异常概述与异常体系结构常见异常异常处理机制一:try-catch-finallyfinally的使用异常处理机制二:throws重写方法声明抛出异常的原则手动抛出异常用户自定义异常类练习异常总结总结:异常处理5个关键字全部源码:https://github.com/name365/JavaSE-30Day第五章 异常处理异常概述与异常体系结构在使用计算机语言进行项目开发的过程中,即使程序员把代码写得尽善尽美,在系统的运行过程中仍然会遇到一些问题,因为很原创 2020-09-15 20:51:31 · 1045 阅读 · 0 评论 -
Java通俗易懂30天 第15天: 面向对象进阶4
文章目录文章目录文章目录第四章 面向对象(下)抽象类与抽象方法抽象类应用练习创建抽象类的匿名子类对象多态的应用:模板方法设计模式(TemplateMethod)抽象类的练习接口(interface)概述举例接口的应用:代理模式(Proxy)接口的应用:工厂模式Java 8 中关于接口的改进类的内部成员之五:内部类匿名内部类局部内部类的使用注意面向对象思维导图总结全部源码:https://github.com/name365/JavaSE-30Day第四章 面向对象(下)抽象类与抽象方法随着原创 2020-09-15 20:49:28 · 2908 阅读 · 0 评论 -
Java通俗易懂30天 第14天: 面向对象进阶3
文章目录全部源码:https://github.com/name365/JavaSE-30Day第四章 面向对象(下)关键字:staticstatic 的使用当我们编写一个类时,其实就是在描述其对象的属性和行为,而并没有产生实质上的对象,只有通过 new 关键字才会产生出对象,这时系统才会分配内存空间给对象,其方法才可以供外部调用。我们有时候希望无论是否产生了对象或无论产生了多少对象的情况下, 某些特定&原创 2020-09-13 06:18:08 · 1302 阅读 · 0 评论 -
Java通俗易懂30天 第13天: 面向对象进阶2
文章目录文章目录文章目录第四章 面向对象(中)面向对象特征之三:多态性向下转型的使用多态性的练习Object 类的使用Object类中的主要结构==操作符与equals方法重写equals()方法的原则toString的使用包装类(Wrapper)的使用单元测试方法的使用包装类的使用包装类与基本数据类型相互转换练习全部源码:https://github.com/name365/JavaSE-30Day第四章 面向对象(中)面向对象特征之三:多态性向下转型的使用Person 类publi原创 2020-09-13 06:15:38 · 4185 阅读 · 0 评论 -
Java通俗易懂30天 第12天: 面向对象进阶1
文章目录第四章 面向对象(中)继承性的使用与理解继承性练习方法的重写(override/overwrite)方法重写的细节方法的练习四种访问权限修饰符关键字:super子类对象实例化过程面向对象特征之三:多态性虚拟方法的补充全部源码:https://github.com/name365/JavaSE-30Day第四章 面向对象(中)继承性的使用与理解Person 类public class Person { String name; private int age; publi原创 2020-09-13 06:10:08 · 247 阅读 · 0 评论 -
Java通俗易懂30天 第11天:客户信息管理系统实战
文章目录文章目录文章目录客户信息管理软件需求说明书软件设计结构第1步:封装CMUtility工具类第2步:Customer类的设计第3步:CustomerList类的设计第4步:CustomerView类的设计全部源码:https://github.com/name365/JavaSE-30Day客户信息管理软件这个项目起初书写花了4小时,一堆bug,根据相关教程步骤,最后成功,前后一共花了9小时。只是记录!!!需求说明书下载链接:语雀。软件设计结构该软件由以下三个模块组成:原创 2020-09-11 07:07:32 · 1121 阅读 · 1 评论 -
Java通俗易懂30天 第10天:面向对象(下)
文章目录全部源码:https://github.com/name365/JavaSE-30Day第四章 面向对象(上)4.6 面向对象特征之一:封装与隐藏封装性的引入与体现为什么需要封装?封装的作用和含义?我要用洗衣机,只需要按一下开关和洗涤模式就可以了。有必要了解洗衣机内部的结构吗?有必要碰电动机吗?我要开车,…我们程序设计追求"高内聚,低耦合"。高内聚:类的内部数据操作细节自己完成,不允许外部干涉;低耦合:仅对外暴露少量的方法用于使用。隐藏对象内部的复杂性,只对外公开原创 2020-09-11 00:14:34 · 265 阅读 · 0 评论 -
Java通俗易懂30天 第9天:面向对象(中)
文章目录第四章 面向对象(上)4.4 类的成员之二:方法类中方法的声明和使用理解"万事万物皆对象"对象数组的内存解析匿名对象的使用自定义数组的工具类4.5 再谈方法方法的重载(overload)可变个数的形参方法参数的值传递机制(重点!!!)递归(recursion)方法第四章 面向对象(上)全部源码:https://github.com/name365/JavaSE-30Day4.4 类的成员之二:方法类中方法的声明和使用public class CustomerTest { publi原创 2020-09-11 00:12:50 · 189 阅读 · 0 评论 -
Java通俗易懂30天 第7天:数组2
今天和小刘,一起来看看 第7天的内容吧,快跟上小刘的脚步 !文章目录第3章 数组3.4 数组中涉及到的常见算法数组元素的赋值数组元素的基本操作数组元素的基本操作 2数组的复制、反转、查找数组元素的排序算法十大内部排序算法算法的 5 大特征冒泡排序(重要)快速排序(初学Java,仅作了解)排序算法性能对比3.5 Arrays 工具类的使用3.6 数组使用中的常见异常全部源码:https://github.com/name365/JavaSE-30Day第3章 数组3.4 数组中涉及到的常见算..原创 2020-09-09 23:38:23 · 4049 阅读 · 0 评论 -
Java通俗易懂30天 第6天:数组
全部源码:https://github.com/name365/JavaSE-30Day第3章 数组3.1 数组的概述3.2 一维数组的使用代码案例1——ArrayTest.javapublic class ArrayTest { public static void main(String[] args) { int num; num = 10; int id = 1001; int[] ids; ids = new int[]{1001,1002,1003,10.原创 2020-09-07 23:40:53 · 1697 阅读 · 0 评论 -
Java通俗易懂30天 第5天: Java基本语法(下):程序流程控制
全部源码:https://github.com/name365/JavaSE-30Day第2章Java基本语法(下):程序流程控制2.5 程序流程控制2.5.4 程序流程控制:循环结构循环结构在某些条件满足的情况下,反复执行特定代码的功能循环语句分类for 循环while 循环do-while 循环循环结构1:for循环 语法格式 for(①初始化部分;②循环条件部分;④迭代部分){ ③循环体部分; }..原创 2020-09-05 09:02:41 · 1104 阅读 · 0 评论 -
Java通俗易懂30天 第4天: Java基本语法(上):程序流程控制
全部源码:https://github.com/name365/JavaSE-30Day第2章Java基本语法(下):程序流程控制2.5 程序流程控制2.5.2 分支语句1:if-else结构if-else使用说明:条件表达式必须是布尔表达式(关系表达式或逻辑表达式)、布尔变量;语句块只有一条执行语句时,一对{}可以省略,但建议保留;if-else语句结构,根据需要可以嵌套使用;当if-else结构是"多选一"时,最后的else是可选的,根据需要可以省略;当多个条件是"互斥"关..原创 2020-09-04 23:54:01 · 773 阅读 · 0 评论 -
Java通俗易懂30天 第3天: Java基本语法(上)2
全部源码:https://github.com/name365/JavaSE-30Day第2章Java基本语法(上)_变量与运算符2.4 运算符运算符是一种特殊的符号,用以表示数据的运算、赋值和比较等。算术运算符赋值运算符比较运算符(关系运算符)逻辑运算符位运算符三元运算符算术运算符class Day3Test{ public static void main(String[] args) { int num1 = 12; int num2 = 5; ..原创 2020-09-03 17:35:36 · 2557 阅读 · 0 评论 -
Java通俗易懂30天 第2天: Java基本语法(上)
全部源码:https://github.com/name365/JavaSE-30Day转载自atguigu.com视频第2章Java基本语法(上)_变量与运算符2.1 关键字与保留字关键字(keyword)的定义和特点定义:被 Java 语言赋予了特殊含义,用做专门用途的字符串(单词)特点:关键字中所有字母都为小写官方地址:https://docs.oracle.com/javase/tutorial/java/nutsandbolts/_keywords.html保留.原创 2020-09-02 22:19:49 · 750 阅读 · 0 评论 -
Java通俗易懂30天 第1天: Java语言概述
把自己以前学习Java知识体系重新总结一遍!文章目录第1章Java语言概述1.1 软件开发介绍常用的DOS命令1.2计算机编程语言介绍1.3 Java语言概述Java简史Java技术体系平台1.4 Java程序运行机制及运行过程Java两种核心机制; 1.5 Java语言的环境搭建; 1.6 开发体验—HelloWorld1.7 常见问题及解决方法1.8 注释(comment)小结第一个程序1.9 eclipse快捷键大全全部源码:https://github.com/name365/JavaS.原创 2020-09-01 23:18:21 · 2230 阅读 · 0 评论