Java基础模块
文章平均质量分 79
Java相关的
芝士味的椒盐
华为云云享专家、51CTOtop红人、阿里云社区专家博主、2021年第十届“中国软件杯”大学生软件设计大赛-B3-高并发条件下消息队列的设计与实现国赛二等奖、2021年浙江省职业院校技能大赛高职组“大数据技术与应用”赛项一等奖、2020“智海”人工智能技术服务技能大赛省三等奖、2018全国职业院校技能大赛中职组电子电路装调与应用赛三等奖
展开
-
一文带你由浅入深Netty异步非阻塞世界(持续更新~~~)
文章目录网络编程概念Java IO流程图Socket连接步骤同步和异步(OS底层操作)阻塞和非阻塞(程序阻塞代码块)BIO编程阻塞BIO案例NIO编程缓冲区案例Buffer的分散和聚焦NIO案例多路复用多人聊天室(NIO)零拷贝网络编程概念两个程序通过一个双向的通信连接实现数据的交换,连接的一端称为一个socketSocket是一个语言无标准,可以实现网络编程语言都有Socket通过·IP+Port通信BIO、NIO、AIO适用场景BIO:连接数少且固定的框架NIO: 连接数多且连接时原创 2022-02-12 19:54:38 · 2299 阅读 · 8 评论 -
ArrayList和SubList的坑面试题
代码复现不要,思考一下会打印出什么? List<String> list1 = new ArrayList<>(Arrays.asList("username", "passwd")); List<String> list2 = list1.subList(0, 2); list2.add("email"); System.out.println(list1); System.out.p原创 2022-02-09 22:02:22 · 1140 阅读 · 2 评论 -
面对Spring Boot 3最低支持Java17如洪水猛兽袭来,何去何从
缘由随着大家都要放假,过新年之际,就在1月20日,Spring官方仿佛给我送了一份大礼,我只能说好家伙,过年前都要卷,正式发布了Spring Boot 3.0.0-M1版本。Spring Boot支持的最低版本从Java8直上到Java17好家伙,Java11、Java12、Java14…都没捂热就直接上Java17了。其实Java17相信关注spring官网的基本都知道,其实在Spring Boot 3发布前,就已经有预兆了,Java17在未来的一段时间内将成为主流的版本,Spring原创 2022-02-09 17:22:15 · 2758 阅读 · 9 评论 -
Java极简算法-二分查找(log n)
先以如下图查找5为案例展示简单查找要从某一个有序序列中查找需要n次,也就是时间复杂度微O(n),而二分查找在序列有序的情况下,每次范围缩小50%,时间复杂度为O(logn)显然比简单查找快了不知多少倍,如上案例,需要检索31元素位置,简单查找要找10次,而二分查找4次即可。Java二分查找实现/** * <p> * 二分查找 * </p> * * @author starrysky * @since 2022/2/8 */public class Bina原创 2022-02-09 00:29:04 · 1699 阅读 · 0 评论 -
大数据组件-Hive部署基于derby作为元数据存储
搭建hive的环境需要hadoop的dfs和yarn可以正常运行的情况下。准备好apache-hive-1.2.1-bin.tar.gz和mysql-libs.zip两个包hive安装步骤:解压apache-hive-1.2.1-bin.tar.gz 到/usr/local/src下,并且将其重命名为hivetar -zxvf apache-hive-1.2.1-bin.tar.gzmv apache-hive-1.2.1-bin hive复制/hive/conf下的hive-en.原创 2022-02-08 23:52:08 · 1465 阅读 · 0 评论 -
一文深入Java浅拷贝和深拷贝
值类型和引用类型理解浅拷贝之前我们需要分清楚值类型(int、float…)、包装类(Integer、Double…)以及自己定义类等类,其实就就是值类型和引用类型两种.就像上面这个图中,int a=1024是值类型的所以是变量a就是直接等于实际的值1024,而object obj1、object obj2显然是引用类型,obj存储的不是实际的对象,而是对象在堆中的地址。原型模式-浅拷贝和深拷贝图解浅拷贝:根据上面来讲解,原型对象在被克隆后克隆出来的新对象和原型对象的地址是不一样的,在克隆出原创 2022-02-08 23:41:28 · 771 阅读 · 0 评论 -
Java并发JUC(java.util.concurrent)Volatile\单例模式\CAS\原子引用
Volatile保证可见性package icu.lookyousmileface.volatilecode;import java.util.concurrent.Executors;import java.util.concurrent.LinkedBlockingQueue;import java.util.concurrent.ThreadPoolExecutor;import java.util.concurrent.TimeUnit;/** * @author starr原创 2022-02-07 17:08:25 · 460 阅读 · 0 评论 -
Java并发JUC(java.util.concurrent)JMM内存模型
JMM请你谈谈你对 Volatile 的理解Volatile 是 Java 虚拟机提供轻量级的同步机制1、保证可见性2、不保证原子性3、禁止指令重排什么是JMMJMM : Java内存模型,不存在的东西,概念!约定!关于JMM的一些同步的约定:1、线程解锁前,必须把共享变量立刻刷回主存。2、线程加锁前,必须读取主存中的最新值到工作内存中!3、加锁和解锁是同一把锁线程 工作内存 、主内存⚠️ TIps:内存交互操作有8种,虚拟机实现必须保证每一个操作都是原子的,不可原创 2022-02-07 17:02:37 · 329 阅读 · 0 评论 -
Java并发JUC(java.util.concurrent)ForkJoin/异步回调
ForkJoin什么是 ForkJoinForkJoin 在 JDK 1.7 , 并行执行任务!提高效率。大数据量!ForkJoin处理流程:工作窃取 试验代码:MyForkJoinTask:package icu.lookyousmileface.forkjoin;import java.util.concurrent.RecursiveTask;/** * @author starrysky * @title: MyForkJoinTask *原创 2022-02-07 16:53:20 · 1439 阅读 · 0 评论 -
Java并发JUC(java.util.concurrent)线程池
线程池(重点)线程池:三大方法、7大参数、4种拒绝策略池化技术:事先准备好一些资源,有人要用,就来我这里拿,用完之后还给我。线程池好处:1、降低资源的消耗 2、提高响应的速度 3、方便管理。线程复用、可以控制最大并发数、管理线程提醒用图三大方法//也就是使用Executors工具类创建线程池的三种方法ExecutorService cachedThreadPool = Executors.newCachedThreadPool();ExecutorService f原创 2022-02-07 16:37:50 · 618 阅读 · 0 评论 -
Java并发JUC(java.util.concurrent)集合不安全
集合不安全先给大家上个集合框架家族图List不安全package icu.lookyousmileface.notsafe;import java.util.*;import java.util.concurrent.CopyOnWriteArrayList;/** * @author starrysky * @title: UnSafeList * @projectName Juc_Pro * @description: 集合不安全 * @date 2021/1/291原创 2022-02-07 16:28:53 · 2217 阅读 · 0 评论 -
Java并发JUC(java.util.concurrent)锁|CSDN创作打卡
什么是JUC?java.util.concurrent在并发编程中使用的工具类进程/线程是什么?进程:一个程序。例如:QQ。线程:调用进程的资源实现一些功能。例如:在QQ下,我们可以聊天也可以打电话。⚠️ Tips:Java默认有两个线程,一个是main、一个是GC,开线程的三种方法:Thread(普通的线程代码)、Runnable(没有返回值,效率比Callable低)、Callable,Java无法真正的开线程,无法操作硬件,底层使用的是C++,调用本地方法,并发/并行是什么?并原创 2022-02-07 01:49:16 · 566 阅读 · 0 评论 -
贪心算法-解决分配问题 leetcode455题分发饼干|CSDN创作打卡
贪心算法 见名知意,就是贪心,在对一个问题进行求解的时候,将求解的过程划分为若干个单元,秉着贪心的思想,即在这划分的每一个单元内取最优解,每一步都是最优解,可想而知最后堆砌出来的也是最优的解,主体思想不看远方不切实际的,活好当下,力求每一都最好,当然最后的结果也基本是好的。leetcode题 假设你是一位很棒的家长,想要给你的孩子们一些小饼干。但是,每个孩子最多只能给一块饼干。对每个孩子 i,都有一个胃口值 g[i],这是能让孩子们满足胃口的饼干的最小尺寸;并且每块饼干 j,都有一个尺寸 s[j原创 2022-02-06 21:48:03 · 245 阅读 · 0 评论 -
极简Java数据结构-环形队列突破上限 |CSDN创作打卡
队列是一个有序的列表,可以用数组或是链表实现队列遵循先入先出的原则。即将:先存入队列的数据要先取出,后存入的要后取出若使用数组的结构来存储队列的数据,则队列数组的声明如下图, 其中 maxSize 是该队列的最大容量。队列的输出、输入是分别从前后端来处理,因此需要两个变量 front及 rear分别记录队列前后端的下标,front 会随着数据输出而改变,而 rear则是随着数据输入而改变将尾指针往后移:rear+1 , 当front == rear 【空】若尾指针 rear .原创 2022-02-05 18:46:07 · 503 阅读 · 0 评论 -
极简Java数据结构-稀疏数组SparseArray|CSDN创作打卡
经典算法面试题字符串匹配问题:暴力匹配[简单,效率低下]KMP算法《部分匹配表》汉罗塔游戏分治算法八皇后问题回溯算法马踏棋盘深度优化遍历算法(DFS)+贪心算法数据结构和算法的关系数据结构是一门研究组织数据方式的学科,有了编程语言也就有了数据结构.学好数据结构可以编写出更加漂亮,更加有效率的代码。程序 = 数据结构 + 算法常见算法修路问题 => 最小生成树(加权值)【数据结构】+ 普利姆算法最短路径问题 => 图+弗洛伊德算法原创 2022-02-05 17:40:38 · 714 阅读 · 0 评论 -
使用MyBatis-Plus代码生成器(数据库MySQL/Sqlite)|CSDN创作打卡
自动代码生成器AutoGenerator 是 MyBatis-Plus 的代码生成器,通过 AutoGenerator 可以快速生成 Entity、Mapper、Mapper XML、Service、Controller 等各个模块的代码,极大的提升了开发效率。由于代码生成器MyBatis-Plus 从 3.0.3 之后移除了代码生成器与模板引擎的默认依赖,需要手动添加相关依赖:代码生成器依赖pom.xml:<dependency> <groupId>.原创 2022-01-27 18:31:02 · 2400 阅读 · 0 评论 -
在SpringBoot项目中集成Swagger2|CSDN创作打卡
简介号称世界上最流行的API框架Restful Api 文档在线自动生成器 => API 文档 与API 定义同步更新直接运行,在线测试API支持多种语言 (如:Java,PHP等)官网:https://swagger.io/SpringBoot集成SwaggerSpringBoot集成Swagger => springfox,两个jar包Springfox-swagger2swagger-springmvc使用Swaggerspringboot-web项目原创 2022-01-19 14:52:42 · 231 阅读 · 0 评论 -
安装Maven到Idea配置Maven竟如此简单|CSDN创作打卡
为什么使用maven?解决人为选择jar包导致各个版本不统一的出现不兼容问题。解决传统Java项目体积体积庞大,启动项目慢的问题。减少开发者自助准备包的时间以及风险。有利于为服务之间模块化的规范。接下来就由我来你们从maven安装到Idea配置一步到胃的配置一番,开车~~~~~maven安装maven安装包下载地址:https://archive.apache.org/dist/maven/maven-3/3.6.3/binaries/注意:我编写篇博客的时候最新版本为3.6.3版,你们原创 2022-01-18 23:54:26 · 309 阅读 · 0 评论 -
Kotlin学习记录
常见的数据类型Byte 存储值范围整数-128-127Short 存储值范围整数-32768-32767Int 存储值范围整数-2147483648-2147483647Long 存储值范围整数-9223372036854775807-9223372036854775807Foat 存储值范围小数,小数点可以精确到6位Double 存储值范围小数,小数点可以精确到15-16位String原创 2022-01-14 11:47:35 · 6947 阅读 · 0 评论