![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Java基础
文章平均质量分 53
Java的基础知识
坐飞机的狗
熟悉java技术,熟悉java常用设计模式,熟悉java高并发程序设计,了解jvm调优;熟悉基于spring boot+Mybatis的网站后端开发;了解go web开发,熟悉基于RPC + go 微服务开发;熟悉python常用的数据分析库(pandas\sklearn\tensorflow等)、爬虫框架(scrapy)、django后端开发;熟悉mysql的使用;了解前端HTML+CSS+Javascript;了解常用的机器学习算法;熟悉git常用操作。
展开
-
Java中SPI机制
SPI原创 2022-08-06 13:40:58 · 88 阅读 · 0 评论 -
vscode远程linux开发报错The Language Support for Java server crashed 5 times in the last 3 minutes.
按 CTRL + SHIFT + P,然后键入 Java:清理 Java 语言服务器工作区。原创 2022-04-14 13:52:27 · 694 阅读 · 0 评论 -
ConcurrentHashMap
基本结构1.7结构1.8结构Segment段ConcurrentHashMap和HashMap思路差不多,但是HashMap并不支持并发操作。整个ConcurrentHashMap由一个个Segment组成,Segment代表一个“槽”。 static class Segment<K,V> extends ReentrantLock implements Serializable { private static final long ser原创 2021-05-19 17:00:35 · 68 阅读 · 0 评论 -
JDK1.8 特性--接口默认方法和静态方法
▌为什么要有接口默认方法?现有的接口老早就写好了,后面因为各种业务问题,避免不了要修改接口。在 JDK 之前,要在一个接口中添加一个新的抽象方法,那所有的接口实现类都要去实现这个方法,不然就会编译错误,而某些实现类根本就不需要实现这个方法也被迫要写一个空实现,改动会非常大。所以,接口默认方法就是为了解决这个问题,只要在一个接口添加了一个默认方法,所有的实现类就自动继承,不需要改动任何实现类,也不会影响业务。另外,接口默认方法可以被接口实现类重写。▌为什么要有接口静态方法?接口静态方法和默原创 2021-03-20 21:45:24 · 185 阅读 · 0 评论 -
HashMap底层原理
简介JDK1.8之前:数组(HashMap主体) + 链表(解决Hash冲突--“拉链法”) JDK1.8之后:数组(HashMap主体) + 链表(解决Hash冲突--“拉链法”) + 红黑树 链表转红黑树条件: 链表长度>8(默认值) HashMap数组长度>64 实现原理拉链法“拉链法”是:将链表和数组相结合。也就是说创建一个链表数组,数组中每一格就是一个链表。若遇到哈希冲突,则将冲突的值加到链表中即可--解决hash冲突扰动函数扰动函数指的是 Has..原创 2021-03-19 21:35:37 · 950 阅读 · 0 评论 -
Java中的四种引用
1. 强引用强引用是平常中使用最多的引用,强引用在程序内存不足(OOM)的时候也不会被回收,使用方式:String str = new String("string");发生gc的时候不会被回收。2.软引用有用但不是必须的对象,在发生内存溢出之前会被回收。// 注意:wrf这个引用是强引用,它指向SoftReference这个对象// 这里的软引用指的是指向new String("str")的引用,也就是SoftReference类中的TSoftReference<St原创 2021-03-05 14:50:11 · 61 阅读 · 2 评论 -
ClassLoader
虚拟机设计团队把加载动作放到JVM外部实现,以便让应用程序决定如何获取所需的类,JVM提供了3种类加载器:一、启动类加载器(Bootstrap ClassLoader)负责加载JAVA_HOME\lib目录中的,或通过-Xbootclasspath参数指定路径中的,且被虚拟机认可(按文件名识别,如rt.jar)的类。二、扩展类加载器(Extension ClassLoader)负责加载JAVA_HOME\lib\ext目录中,或通过java.ext.dirs系统变量指定路径中的类库。三、原创 2021-02-13 21:35:33 · 89 阅读 · 0 评论 -
Java反射笔记
动态语言是指程序在运行时可以改变其结构:新的函数可以引进,已有的函数可以删除等结构上变化。JavaScript、Ruby、Python也属于动态语言,而C、C++则不属于动态语言。反射机制概念(运行状态中知道类所有属性和方法)Java的反射机制是指在运行状态中,对于任意一个类都能够知道这个类所有的属性和方法;并且对于任意一个对象,都能够调用它的任意一个方法;反射的应用场合在Java程序中许多对象在运行时都会出现两种类型:编译时类型和运行时类型。编译时类型:由声明对象时实用的类型来决.原创 2021-02-09 23:10:06 · 248 阅读 · 6 评论 -
重载和复写
一、覆写:子类定义了与父类相同的方法或属性。1、方法覆写方法覆写/重写:子类定义了与父类方法名称、参数类型及个数完全相同的方法。但是被覆写不能够拥有比父类更为严格的访问控制权限2、属性的覆写当子类定义了和父类属性名称完全相同的属性的时候,就成为属性的覆盖。class Person{ private String = "Preson" ; public void print(){ System.out.println("1.[Person]类的print方法"原创 2021-01-23 15:29:42 · 378 阅读 · 0 评论 -
Java自定义异常
让一个类称为异常类,必须要继承异常体系,因为只有称为异常体系的子类才有资格具备可抛出性。才可以被两个关键字所操作。异常的分类:编译时被检测异常:只要是Exception和其子类都是,除了特殊子类RuntimeException体系。这种问题一旦出现,希望在编译时就进行检测,让这种问题有对应的处理方式。这样的问题都可以针对性的处理。编译时不检测异常(运行时异常):就是Exception中的RuntimeException和其子类。这种问题的发生,无法让功能继续,运算无法进行,跟多是因为调用者的原因导致原创 2020-11-07 21:19:57 · 60 阅读 · 0 评论 -
static、final和成员变量
finalfinal类不能被继承,没有子类,final类中的方法默认是final的final方法不能被子类的方法覆盖,但可以被继承【修补继承打破封锁规则】final成员变量表示常量,只能被赋值一次,赋值后不能再被改变final不能用于修饰构造方法private不能被子类方法覆盖,private类型的方法默认是final类型的static成员变量与静态变量的区别:名称所属内存位置存在时间消失时间调用成员变量实例对象堆内存对象new存在对象被回收.原创 2020-10-31 20:20:46 · 241 阅读 · 3 评论