Java
文章平均质量分 80
java基础以及重点技能
Volunteer Technology
对java技术以及python比较熟悉,在精进的道路上,毕业至今!
展开
-
Lambda表达式为什么运行效率低
Lambda表达式,指令级解析以及运行速率为啥慢的精解!!!!!原创 2022-01-03 23:44:40 · 1095 阅读 · 6 评论 -
Java基础IO流(二):字符流与转换流
目录字符流为什么会出现字符流【理解】编码表【理解】字符串中的编码解码问题【应用】字符流写数据【应用】字符流读数据【应用】字符流用户注册案例【应用】字符缓冲流【应用】字符缓冲流特有功能【应用】字符缓冲流操作文件中数据排序案例【应用】IO流小结【理解】转换流字符流中和编码解码问题相关的两个类【理解】转换流读写数据【应用】对象操作流对象序列化流【应用】对象反序列化流【应用】serialVersionUID&transient【应用】原创 2021-06-28 10:55:12 · 204 阅读 · 0 评论 -
Java基础IO(一):字节流与字符流的介绍
File类File类概述和构造方法【应用】 File类介绍 它是文件和目录路径名的抽象表示 文件和目录是可以通过File封装成对象的 对于File而言,其封装的并不是一个真正存在的文件,仅仅是一个路径名而已.它可以是存在的,也可以是不存在的.将来是要通过具体的操作把这个路径的内容转换为具体存在的 File类的构造方法 方法名 说明 File(String pathname) 通过将给定的路径名字符串转换为抽象路径名原创 2021-06-28 10:33:57 · 400 阅读 · 0 评论 -
网络协议(二):NIO与HTTP与http服务器
NIONIO通道客户端【应用】 客户端实现步骤 打开通道 指定IP和端口号 写出数据 释放资源 示例代码 public class NIOClient { public static void main(String[] args) throws IOException { //1.打开通道 SocketChannel socketChannel = SocketChannel.原创 2021-06-27 20:20:42 · 1191 阅读 · 1 评论 -
网络编程(一):TCP与UDP与NIO
目录网络编程入门网络编程概述【理解】网络编程三要素【理解】IP地址【理解】InetAddress【应用】端口和协议【理解】UDP通信程序UDP发送数据【应用】UDP接收数据【应用】UDP通信程序练习【应用】UDP三种通讯方式【理解】UDP组播实现【理解】UDP广播实现【理解】TCP通信程序TCP发送数据【应用】TCP接收数据【应用】TCP程序练习【应用】TCP程序文件上传练习【应用】TCP程序服务器优化【应用】NIO...原创 2021-06-27 20:22:43 · 976 阅读 · 2 评论 -
Java基础:集合Map原理以及JDK1.8流的使用
Map集合Map集合概述和特点【理解】 Map集合概述 interface Map K:键的类型;V:值的类型 Map集合的特点 双列集合,一个键对应一个值 键不可以重复,值可以重复 Map集合的基本使用 public class MapDemo01 { public static void main(String[] args) { //创建集合对象 Map map = new HashMa...原创 2021-06-27 17:55:27 · 588 阅读 · 0 评论 -
Java基础:集合-Set与HashSet原理
目录Set集合Set集合概述和特点【应用】Set集合的使用【应用】TreeSet集合TreeSet集合概述和特点【应用】TreeSet集合基本使用【应用】自然排序Comparable的使用【应用】比较器排序Comparator的使用【应用】两种比较方式总结【理解】数据结构二叉树【理解】二叉查找树【理解】平衡二叉树【理解】红黑树【理解】成绩排序案例【应用】HashSet集合HashSet集合概述和特点【应用】HashSet集合的基本应用【原创 2021-06-27 17:49:32 · 736 阅读 · 0 评论 -
java基础之集合-Collection并List
目录1.Collection集合1.1数组和集合的区别【理解】1.2集合类体系结构【理解】1.3Collection 集合概述和使用【应用】1.4Collection集合的遍历【应用】1.5增强for循环【应用】2.List集合2.1List集合的概述和特点【记忆】2.2List集合的特有方法【应用】3.数据结构3.1数据结构之栈和队列【记忆】3.2数据结构之数组和链表【记忆】4.List集合的实现类4.1List集合子类的特点【记忆】4.2L原创 2021-06-27 17:44:02 · 614 阅读 · 0 评论 -
多线程(六):并发容器类讲解
目录并发工具类并发工具类-Hashtable并发工具类-ConcurrentHashMap基本使用并发工具类-ConcurrentHashMap1.7原理并发工具类-ConcurrentHashMap1.8原理并发工具类-CountDownLatch并发工具类-Semaphore并发工具类并发工具类-HashtableHashtable出现的原因 : 在集合类中HashMap是比较常用的集合对象,但是HashMap是线程不安全的(多线程环境下可能会存在问题)。为了保证原创 2021-06-27 17:39:28 · 303 阅读 · 0 评论 -
多线程(五):volatile与原子性和锁的详解
目录volatile与原子性详解volatile-问题volatile解决synchronized解决原子性volatile关键字不能保证原子性原子性_AtomicIntegerAtomicInteger-内存解析AtomicInteger-源码解析悲观锁和乐观锁volatile与原子性详解volatile-问题代码分析 :/** * @author wangyy * @Date 2021-06-25 */public class De转载 2021-06-25 14:33:51 · 294 阅读 · 0 评论 -
多线程(二):线程同步以及死锁
2.1卖票【应用】 案例需求 某电影院目前正在上映国产大片,共有100张票,而它有3个窗口卖票,请设计一个程序模拟该电影院卖票 实现步骤 定义一个类SellTicket实现Runnable接口,里面定义一个成员变量:private int tickets = 100; 在SellTicket类中重写run()方法实现卖票,代码步骤如下 判断票数大于0,就卖票,并告知是哪个窗口卖的 卖了票之后,总票数要减1 票卖没了转载 2021-06-25 11:01:37 · 213 阅读 · 0 评论 -
ForkJoin框架使用和原理剖析
一:ForkJoin理解默认情况下,并行线程数量等于可用处理器的数量ForkJoinPool与其他类型的ExecutorService的区别主要在于它使用了工作窃取:池中的所有线程都试图查找和执行提交给池的任务和/或其他活动任务创建的任务(如果不存在工作,则最终阻塞等待工作)。二:重写ForkJoinTask//采用park/unpark进行重写import java.util.concurrent.Callable;import java.util.concurrent.Linke原创 2021-03-19 15:04:43 · 397 阅读 · 0 评论 -
生产者与消费者与线程状态
多线程实例代码目录多线程实例代码一:线程运行状态:新建 -> 运行 -> 阻塞 -> 运行 -> 终止二:一般的生产者与消费者模式(三种线程协作通信的方式:suspend/resume、wait/notify、park/unpark */)三:线程池使用的案列四:线程封闭示例一:线程运行状态:新建 -> 运行 -> 阻塞 -> 运行 -> 终止public class Demo2 { public static .原创 2021-03-19 11:45:53 · 196 阅读 · 0 评论 -
mybatis一般配置以及问题处理
一.简单地1000问题的处理,以及配置 <if test="volumes.size() >0"> AND a.USER_CODE IN <foreach collection="volumes" item="item" index="index" open="(" close=")" separator=","> <if test="(index % 999) == 998">原创 2021-02-04 00:34:48 · 566 阅读 · 0 评论 -
Java之校验是否是数字或者汉字
import java.util.regex.Matcher;import java.util.regex.Pattern;public class Test { @org.junit.Test public void test(){ String fileName = "test,中文"; System.out.println(filterChinese(fileName)); } /** * 判断字符串中是否包含中文 .原创 2021-01-21 23:47:06 · 636 阅读 · 0 评论 -
Springboot的自动化配置流程
从springboot的入门案例中,我们可以体会到springboot的便捷之处,使用Spring Initializer创建一个项目,然后写一个controller层就可以运行起来,我们啥也没配置,没配置tomcat、没配置mvc、没配置spring。。。。因为springboot底层都帮我们配置好了,而springboot的精髓就在于自动配置然后不得不提一下springboot的四大特性:自动装配 Starter添加项目依赖 Spring Boot CLI与Groovy的高效配合 Spri原创 2021-01-06 23:09:50 · 781 阅读 · 3 评论 -
JDK8之后集合操作新属性
1、检查list集合中是否存在某个值一个list集合内有name,sex字段,需要判断list中是否有name有叫张三的人,如果有返回trueboolean b = list.stream().filter(m -> m.getName().equals("张三")).findAny().isPresent();boolean b = list.stream().anyMatch(s -> s.getBuName().equals("张三33"));2、获取不重复的list集合原创 2021-01-03 19:52:56 · 780 阅读 · 0 评论 -
Spring类型转换
Java是个多类型且强类型语言,类型转换这个概念对它来说并不陌生。比如:自动类型转换(隐式):小类型 -> 大类型。eg:int a = 10; double b = a; 强制类型转换(显式):大类型 -> 小类型。eg:double a = 10.123; int b = (int)a; 说明:强转有可能产生精度丢失 调用API类型转换:常见的是字符串和其它类型的互转。eg:parseInt(String); parseBoolean(String); JSON.toJSONS转载 2020-12-15 22:19:26 · 818 阅读 · 1 评论 -
spring解析注解@Component和Service逻辑源码解读
@Component和@Service都是工作中常用的注解,Spring如何解析?1.@Component解析流程找入口Spring Framework2.0开始,引入可扩展的XML编程机制,该机制要求XML Schema命名空间需要与Handler建立映射关系。该关系配置在相对于classpath下的/META-INF/spring.handlers中。如上图所示ContextNamespaceHandler对应context:... 分析的入口。找核心方法浏览Conte.原创 2020-12-06 23:33:31 · 968 阅读 · 0 评论 -
Java基础之—反射(非常重要)
前言 相信很多人都知道反射可以说是Java中最强大的技术了,它可以做的事情太多太多,很多优秀的开源框架都是通过反射完成的,比如最初的很多注解框架,后来因为java反射影响性能,所以被运行时注解APT替代了,java反射有个开源框架jOOR相信很多人都用过,不过我们还是要学习反射的基础语法,这样才能自己写出优秀的框架,当然这里所讲的反射技术,是学习Android插件化技术、Hook技术等必不可少的!一、基本反射技术 1.1 根据一个字符串得到一个类 getClass方...原创 2020-12-02 23:15:32 · 136 阅读 · 0 评论 -
Mybatis的执行流程
环境准备基于第一篇搭建好的源码过程和demo,我们通过一个简单的查询进行分析,完整的代码如下:userDaopublic interface UserDao { User findUserById(int id);}MyUserMapper.xml<mapper namespace="com.congge.demo1.dao.UserDao"> <select id="findUserById" parameterType="int" result原创 2020-12-01 23:05:00 · 456 阅读 · 0 评论 -
ForkJoinPool 的适用场景,实现原理
ForkJoinPool 不是为了替代 ExecutorService,而是它的补充,在某些应用场景下性能比 ExecutorService 更好。ForkJoinPool 主要用于实现“分而治之”的算法,特别是分治之后递归调用的函数,例如 quick sort 等。ForkJoinPool 最适合的是计算密集型的任务,如果存在 I/O,线程间同步,sleep() 等会造成线程长时间阻塞的情况时,最好配合使用 ManagedBlocker。使用首先介绍的是大家最关心的 Fork/Join Frame转载 2020-11-25 22:52:41 · 1027 阅读 · 0 评论 -
mybatisplus的公共字段插入
Mybatis的公共字段插入公共的基础类package com.yss.common.domain;import com.baomidou.mybatisplus.annotation.FieldFill;import com.baomidou.mybatisplus.annotation.IdType;import com.baomidou.mybatisplus.annotation.TableField;import com.baomidou.mybatisplus.annotation原创 2020-11-10 21:58:44 · 743 阅读 · 1 评论