
java基础
法毅的博客
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
多线程并发总结
目录1.volatile关键字1.1 保证多个线程运行时的可见性问题1.2 禁止指令重排2 synchronized 关键字2.1用法2.2 实现原理2.3 锁升级过程3.Lock锁3.1Lock()3.2tryLock()3.3tryLock(long time, TimeUnit unit)3.4 lockInterruptibly() 可以响应中断3.5unLock()4.Java锁的分类4.1悲观锁和乐观锁4.2公平锁和非公平锁原创 2021-07-04 15:29:16 · 1663 阅读 · 5 评论 -
Java 编码规范
目录一:命名与注释1.1 关于命名1.2 关于注释二:代码风格三:编程技巧3.1将复杂的逻辑提炼拆分成函数和类3.2避免函数参数过多3.2.1考虑函数是否职责单一,拆分成多个函数3.2.2将函数的参数封装成对象3.3函数中不要使用参数来做代码执行逻辑的控制3.4函数设计要职责单一3.5移除过深的嵌套层次3.5.1掉多余的 if 或 else 语句3.5.2使用编程语言提供的 continue、break、return 关键字,提前退出...原创 2020-05-26 22:09:10 · 1633 阅读 · 0 评论 -
Java JVM虚拟机
1.JVM内存区域程序计数器:一块较小的内存空间, 是当前线程所执行的字节码的行号指示器,每条线程都要有一个独立的程序计数器,这区域不存在内存溢出的情况 虚拟机栈:描述 java 方法执行的内存模型,每个方法在执行的同时都会创建一个栈帧(Stack Frame) 用于存储局部变量表、操作数栈、动态链接、方法出口等信息 本地方法区:Native 方法服务,一般C语言开发的底层方法,不是Java自己方法 堆:创建的对象和数组都保存在 Java 堆内存中,也是垃圾收集器进行 垃圾收集的最重要的内存区域。原创 2020-04-14 22:43:34 · 266 阅读 · 0 评论 -
redis 底层数据结构详解
/SDS所保存字符串的长度int len;// 记录buf数组中未使用字节的数量int free;// 字节数组,用于保存字符串char buf[];原创 2023-04-02 14:58:44 · 1194 阅读 · 0 评论 -
(四)链表和递归
public class LinkedList<E> { private class Node{ public E e; public Node next; public Node(E e,Node next){ this.e = e; this.next = next; } public Node(E e){ this(e,nul.原创 2020-11-01 22:20:50 · 334 阅读 · 0 评论 -
Java 网络通讯
Java Socket 实现简单的网络通讯原创 2021-03-04 21:54:07 · 510 阅读 · 10 评论 -
java面试常见题
一:集合1. 常用的集合?List ,Set ,MapList : 有序,可重复的集合,ArrayList和LinkedList有什么区别?Set : 无序,不可重复。HashSet如何保证元素不重复?Map: 数据结构?TreeMap,LinkedHashMap,HashMap 区别?HashMap 的 put 过程?扩容过程?扩容后的大小为什么是2的倍数?时间复...原创 2021-12-28 23:26:28 · 205 阅读 · 1 评论 -
Hutool的CollStreamUtil
Hutool的CollStreamUtil原创 2022-10-16 21:16:33 · 1003 阅读 · 0 评论 -
hutool的TheadUtil创建CompletionService
CompletionService异步获取原创 2022-10-03 18:15:27 · 1541 阅读 · 0 评论 -
hutool的树形工具类-TreeUtil
树形结果返回,不再需要自己写递归了原创 2022-10-03 17:41:18 · 2212 阅读 · 0 评论 -
letcode 第20题-有效的括号
letcode实现有效的括号原创 2022-07-28 18:34:17 · 206 阅读 · 0 评论 -
Java 实现一个性能计数器
1.0版本,最小原型/** * 统计类 */public class Metrics { /** * 响应时间,key为接口名称,value为时间集合 */ private Map<String, List<Double>> responseTimes = new HashMap<>(); /** * 时间戳,key为接口名称,value为时间集合 */ private Map<S原创 2022-04-09 22:19:13 · 752 阅读 · 0 评论 -
Java8 stream使用
/** * 交易员 */@Data@AllArgsConstructor@NoArgsConstructorpublic class Trader { private String name; private String city;}/** * 交易 */@Data@AllArgsConstructorpublic class Transaction { private final Trader trader; private final .原创 2022-04-04 16:18:23 · 559 阅读 · 0 评论 -
递归获取子文件夹下所有文件
package org.simpleframework.util;import lombok.extern.slf4j.Slf4j;import java.io.File;import java.io.FileFilter;import java.net.URL;import java.util.HashSet;import java.util.Set;/** * @author chongfayi * @date 2021-10-21 */@Slf4jpublic clas.原创 2021-10-21 17:16:46 · 577 阅读 · 0 评论 -
Ssm 整合
1.新建maven的web项目,引入相关依赖。<properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <maven.compiler.en原创 2021-01-12 21:09:43 · 280 阅读 · 0 评论 -
Java NIO
public class Solution { public static Boolean isValid(String s) { ArrayStack<Character> stack = new ArrayStack<>(); for (int i = 0; i < s.length(); i++) { char c = s.charAt(i); ...原创 2020-10-31 20:09:01 · 182 阅读 · 0 评论 -
手写一个链表
目录1.链表1.1概述1.2在链表中添加元素1.3使用链表的虚拟头节点1.4遍历链表,查询和修改1.5链表中删除元素2.递归2.1 概述2.2 递归实现链表中所有元素1.链表1.1概述一种线性数据结构,数据存储在 Node 节点中public class LinkedList<E> { private class Node{ public E e;原创 2020-10-31 13:46:11 · 190 阅读 · 0 评论 -
Java 手写一个动态数组
public class Array<E> { private E[] data; // 有效元素个数 private int size; /** * 构造函数,传入数组容量capacity构造Array * @param capacity */ public Array(int capacity){ data = (E[])new Object[capacity]; size = 0;.原创 2020-10-31 13:04:39 · 350 阅读 · 0 评论 -
Java 实现简单Socket通信
1.网络通讯名词简介IP:Internet Protocol,即互联网协议。IP现在通用的版本是IPv4,。地址是四个 byte 的数字,用点分开。正在实施的IPv6地址会复杂得多。每个机器都有一个IP地址。IP地址又分内网和外网地址,就像是我们的小名和官方大名。只有外网地址才能用来外网通讯 port:端口。和 IP 地址一起,可以唯一的确定一个网络连接的目的地。计算机的端口是用无符号的16个 bit 表示的,所以端口的范围是 0-65535,不能超过这个范围 Socket:套接字,就好像插座,可.原创 2020-04-14 01:20:09 · 1857 阅读 · 1 评论 -
Java 手写一个RPC框架
Java 手写一个RPC框架原创 2020-04-13 01:23:10 · 454 阅读 · 0 评论 -
Java 泛型
目录泛型概述泛型类泛型接口泛型方法常用示例泛型概述泛型可以让数据类型变的参数化:定义泛型时候,对应的数据类型是不确定的 泛型方法被调用时,会指定具体类型 核心目标:解决容器类型在编译时的安全检查问题下面的代码写的时候没有提示,但是编译的时候报错Exception in thread "main" java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.Stri...原创 2020-04-02 23:47:20 · 770 阅读 · 0 评论 -
Java 反射
目录反射概述反射机制的作用Java.lang.reflect类库里面主要的类反射三种获取方式获取成员变量获取构造器获取方法实际应用示例:利用反射实现只修改配置文件,实现调用某个类的类中方法反射概述允许程序在运行时来进行自我检查并且对内部的成员进行操作 反射主要是指程序可以访问,检测和修改它本身状态或行为的一种能力,并能根据自身行为的状态和结果,调整或修改应用所描素行为的状态和相关的语义反射机制的作用在运行时判断任意一个对象所属的类 在运行时获取类的对象..原创 2020-04-01 02:15:47 · 222 阅读 · 0 评论 -
Java 异常
目录1.try catch 捕获异常2. 异常的分类3.throws抛出异常4. 自定义异常5. try-catch-finally 语句6.常见的异常1.try catch 捕获异常try语句如果发生了异常(Exception),那么程序就会跳转到catch语句 Java会将异常相关信息封装在一个异常类的实例中,ex是指向这个异常实例的引用 可以调用printStackTrace 将异常信息输出到控制台 catch语句执行完毕,程序会继续向下顺序执.原创 2020-03-31 22:37:58 · 209 阅读 · 0 评论 -
Java Stream
Java的Stream对集合处理非常方便 List<Person> list = Arrays.asList( new Person("1992", 10), new Person("1992", 10), new Person("2001", 14), new Person("2003", 12), new Person("原创 2020-03-28 19:30:20 · 394 阅读 · 0 评论 -
Jdbc及ibatis连库实例
目录1.Jdbc连接Mysql实现增删改查2.Mysql通用分页:3.Jdbc连接Oracle数据库4.Oracle通用分页:5.DBUtils使用6.ibatis-连库实例1.resources 文件夹下新建SqlMap.xml2.新建SqlMapConfig.properties3.新建SqlMapConfig.xml4.测试没有Mybatis的时候都是用的Jdbc,Mybatis实际就是对Jdbc做的封装 JDBC(Java..原创 2020-03-27 23:14:49 · 523 阅读 · 0 评论 -
Java 集合-HashMap
目录1.类声明2.属性3.构造方法4.Hash函数5.添加单个元素6.扩容7.树化1.类声明public class HashMap<K,V> extends AbstractMap<K,V> implements Map<K,V>, Cloneable, Serializable 实现java.util.Map接口,并继承java.util.AbstractMap抽像类。 实现...原创 2020-03-26 22:58:30 · 241 阅读 · 0 评论 -
Java 集合-LinkedList
目录1.类声明2.属性3.构造方法4.添加单个元素5.添加元素到指定位置1.类声明public class LinkedList<E> extends AbstractSequentialList<E> implements List<E>, Deque<E>, Cloneable, java.io.Serializable 如下 3 个接口是 ArrayList 一致的:java.util.Lis原创 2020-03-25 23:24:20 · 1095 阅读 · 0 评论 -
Java 集合-ArrayList
目录1.类声明2.属性3.构造器4.添加元素和扩容5.在指定索引位置添加元素6.删除指定位置元素1.类声明public class ArrayList<E> extends AbstractList<E> implements List<E>, RandomAccess, Cloneable, java.io.Serializable实现了4个接口:java.util.List接口,提供数组的添.原创 2020-03-25 00:07:46 · 939 阅读 · 0 评论 -
Java 类和接口
目录1. 接口2.抽象类3.什么时候用接口和抽象类4.静态内部类5.成员内部类:6.局部内部类:7.匿名类1. 接口接口的定义使用interface 。 接口无法被实例化,也就是不可以new一个接口的实例。 接口不能包含属性(也就是成员变量)。 接口只能声明方法,方法不能包含代码实现。 类实现接口的时候,必须实现接口中声明的所有方法。示例:定义了一个 Filter 接口。AuthencationFilter 和 RateLimitFil原创 2020-03-22 00:03:09 · 621 阅读 · 0 评论 -
Java 面向对象
目录一面向对象编程和面向对象编程语言1.1面向对象编程1.2 面向对象编程语言二 面向对象的三大特性2.1 封装2.2继承2.4 多态2.4.1 继承加方法重写实现多态2.4.2 利用接口类实现多态性一面向对象编程和面向对象编程语言1.1面向对象编程面向对象是一种编程范式或编程风格。 它以类或对象作为组织代码的基本单元,并将封装,抽象,继承,多态四个特性,作为代码设计和实现的基石1.2 面向对象编程语言面向对象编程语言是支持类或对象的...原创 2020-03-20 00:51:47 · 536 阅读 · 2 评论