
Java
文章平均质量分 58
Renaissance14th
这个作者很懒,什么都没留下…
展开
-
ConcurrentHashmap
先来看看 1.7 的实现,下面是他的结构图:原理上来说:ConcurrentHashMap 采用了分段锁技术,其中 Segment 继承于 ReentrantLock。不会像 HashTable 那样不管是 put 还是 get 操作都需要做同步处理,理论上 ConcurrentHashMap 支持 CurrencyLevel (Segment 数组数量)的线程并发。每当一个线程占用锁访问一个 Segment 时,不会影响到其他的 Segment。再结合图看看 put 的流程。 将当.原创 2021-03-08 16:42:05 · 139 阅读 · 0 评论 -
我终于搞懂了字符串常量池、运行时常量池、Class常量池
String table又称为String pool,字符串常量池在JDK1.6时候字符串常量池是放在运行时常量池中的。运行时常量池是放在方法区的。在JDK1.7的时候把字符串常量池拿出来放到了堆中,运行时常量池还是放在方法去,同样拿过去的还有静态变量。在JDK1.8的时候把JDK1.7方法区中剩下的所有东西,放到了元空间。String str1 = "abc";String str2 = "abc";str1时会在字符串常量池创建一个abcstr2的时候因为字符串常量池有...原创 2021-03-05 09:45:06 · 229 阅读 · 0 评论 -
JUC
1.内容列表原创 2021-02-18 18:44:40 · 183 阅读 · 0 评论 -
Java知识复习----反射
1.反射基于Person类package top.oneluckyguy.reflection;/** * @author Liu Qingfeng * @create 2020-12-29----14:14 */public class Person { private String name; public int age; @Override public String toString() { return "Person{"原创 2020-12-30 19:08:36 · 199 阅读 · 0 评论 -
Java高级知识复习----泛型
目录0.注1.在集合中使用泛型2.自定义泛型类3.继承中的泛型4.通配符0.注1.在使用泛型的时候不能是基本数据类型,要用其包装类。2.静态中不能用泛型3.自定义异常类(继承于Exception)不能用泛型1.在集合中使用泛型package top.oneluckyguy.generic;import org.junit.jupiter.api.Test;import java.util.*;import java.util.Map.Entr原创 2020-12-29 20:59:10 · 283 阅读 · 0 评论 -
JAVA IO流项目----本地文档实现简单通讯录存储
1.Title用Java语言实现通讯录管理系统2.Requests设计一个能够记录学生通讯录的数据结构(比如包括:学号,姓名,年龄,性别,联系电话,住址等)。 应用文件(或数据库)保存通讯录数据。 新增:能将所有输入的通讯录数据保存到文件中,并可选择继续输入或退出。 查找:输入学生的学号,并在文件中查找,若找到,则显示该学生详情,否则提示未找到。 删除:输入学生的学号,并在文件中查找;若找到,提示是否确定删除;若选择是,则删除文件中该学生信息;若选择否,则取消,否则提示无此学生信息 修原创 2020-12-29 16:46:45 · 1408 阅读 · 2 评论 -
Java高级知识复习----Map
1.HashMappackage top.oneluckyguy.map;import org.junit.Test;import java.util.*;/** * @author Liu Qingfeng * @create 2020-12-27----23:57 * * * 一、Map的实现类的结构: * |----Map:双列数据,存储key-value对的数据 ---类似于高中的函数:y = f(x) * |----HashMap:作为Map原创 2020-12-29 11:39:10 · 219 阅读 · 0 评论 -
Java高级知识复习----集合Collection中List和Set
1.集合框架分为Collection和map原创 2020-12-25 20:44:43 · 253 阅读 · 0 评论 -
Java高级知识复习----Socket网络编程TCP、UDP和URL
1.TCP网络编程1.客户端发送内容给服务器服务器将内容打印到控制台上。package top.oneluckyguy.socket;import org.junit.Test;import java.io.ByteArrayOutputStream;import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;import java.net.InetAddress;import原创 2020-12-21 14:54:14 · 199 阅读 · 0 评论 -
Java高级知识复习----IO流
1.字符流输入流输出流,实现文本文件的复制package top.oneluckyguy.thread;import org.junit.Test;import java.io.*;/** * @author Liu Qingfeng * @create 2020-12-18----21:30 */public class FileReaderWritertest { public static void main(String[] args) { File原创 2020-12-20 19:40:23 · 384 阅读 · 2 评论 -
Java高级知识复习----多线程的四种实现。
1、多线程package top.oneluckyguy.java;/** * @author Liu Qingfeng * @create 2020-12-12----16:47 * 多线程的创建,方式一:继承于Thread * 1.创建一个继承自Thread的类 * 2.重写Thread类的run() ,将此线程执行的操作声明在run()中 * 3.创建Thread类的子类对象 * 4.通过此对象调用start() * eg:遍历100以内所有的偶数。 */public原创 2020-12-15 02:00:02 · 364 阅读 · 0 评论 -
数据库基础复习(四)
1.变量1.系统变量:全局变量,会话变量。2.自定义变量:用户变量,局部变量。1.系统变量:变量由系统提供,不是用户定义,属于服务器层面。#1、查看所有系统变量show global variables; #查看全局变量show session variables; #查看会话变量show variables; #查看会话变量#2、查看满足条件的部分系统变量show global variables like '%char%';#3、查看指定的某原创 2020-12-12 23:16:43 · 274 阅读 · 0 评论 -
Java基础知识复习-------代码块、final、abstract抽象类、代理类、接口、内部类、异常处理
finalstatic final 用来修饰 属性 方法属性:全局常量;自己定义方法的时候,一般不会定义final的。。想重写就重写了。代码不行;注释可以。。注释中x本身没有变。。只是返回的 一个比x大一的数而已代码可以 对象o没变。o里面的属性可以变。可以考虑为存的i的地址没变。。。代理类实现package top.oneluckyguy.second;public class Singleton { public Sin...原创 2020-12-09 15:35:30 · 214 阅读 · 0 评论 -
Java基础知识复习------------------内部类、成员内部类、局部内部类、匿名内部类
1、内部类的概念与分类概念:一个事物内部包含另一个事物,如:汽车里面包含发动机; 一个类内部包含另一个类,另一个类就是内部类,如:发动机分为两种:一个是成员内部类,一个是局部内部类(包含匿名内部类)2、成员内部类的定义及使用定义:修饰符 class 外部类名称 { ... 修饰符 class 成员内部类名称 { ... }}使用方法: 简接调用:外部类定义一个方法,调用到内部类;其他类只需调用该方法即可 直接调用:实例化内部类...转载 2020-12-07 14:36:49 · 149 阅读 · 0 评论 -
java基础复习-----多态、继承、equals和==的区别、单元测试、包装类、向下转型、static、单例模式
异常2020true10 属性不参与多态20原创 2020-12-06 16:58:14 · 166 阅读 · 0 评论 -
java基础知识复习------------day04--------面向对象重载
1.重载同一个类中可以有重名的函数但是其参数不能相同。可变个数的形参要放在末尾public void show(int i , String ... strs){ //格式正确}public void show(String ... strs, int i){ //格式错误,可变个数的形参要放在末尾}方法的参数传递。int[] arr = new int[]{1,2,3};System.out.println(arr); ..原创 2020-12-04 02:05:03 · 249 阅读 · 0 评论 -
java基础知识复习------------day03--------数组,面向对象
1.数组int[] arr1 = new int[2]; arr1[2] = 2; //数组下标越界,编译的时候可以通过,运行的时候报错,编译看语法没有问题,只是生成字节码文件,没有调用内存1.数组的默认初始化值整型默认初始化值都是0;(long、int、short、byte)浮点型默认初始化值是0.0(float、double)char型的是0 (可认为是ASCII,不是字符零'0')或者'\u0000'boolean..原创 2020-12-02 16:17:08 · 154 阅读 · 0 评论 -
java基础知识复习------------day02--------程序设计基础
1.从键盘输入任意个整数,求出输出的正数的个数和负数的个数,输入零结束。 public static void main(String[] args){ Scanner scan = new Scanner(System.in); int z = 0; int f = 0; while(true) { n = scan.nextInt(); if( n > 0) z++; else if(n==0) break; else f原创 2020-12-01 22:10:59 · 157 阅读 · 0 评论 -
java基础知识复习------------day01--------JDK、CMD、变量、补码、命名规则、运算、运算符
1.既然 Java 的垃圾回收机制能够自动的回收内存,怎么还会出现内存泄漏的情况呢?这个问题,我们需要知道 GC 在什么时候回收内存对象,什么样的内存对象会被 GC 认为是“不再使用”的。Java中对内存对象的访问,使用的是引用的方式。在 Java 代码中我们维护一个内存对象的引用变量,通过这个引用变量的值,我们可以访问到对应的内存地址中的内存对象空间。在 Java 程序中,这个引用变量本身既可以存放堆内存中,又可以放在代码栈的内存中(与基本数据类型相同)。 GC 线程会从代码栈中的引用变量开始跟踪,从原创 2020-12-01 00:09:57 · 244 阅读 · 0 评论 -
慕课网Java入门第二季笔记
多态中引用类型转换:可以用 instanceof 来判断是否能进行类型转换:抽象类:应用场景:a 在某些情况下,某个弗雷只是知道其子类应该包含怎样的方法,但无法准去知道这些子类如何实现这下方法。b从多个具有相同特征的类中抽象出一个抽象类,以这个抽象类作为子类的模板,从而避免了子类设计的随意性。使用规则:注:抽象方法没有方法体以分号结束。接口概念...原创 2019-12-03 19:48:16 · 224 阅读 · 0 评论 -
慕课网Java入门第一季笔记
附:学习视频网址https://www.imooc.com/learn/85名词解释JVM java虚拟机包括解释器。。源代码经过编译器生成class文件在经过解释器JDK java开发工具包JRE java 运行时环境JDK 包括JRE包括JVMJava环境配置JAVA_HOME 配置jdkPATH 配置binCLASSP...原创 2019-12-03 08:31:49 · 310 阅读 · 0 评论