
Java基础
文章平均质量分 76
木头人i
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
HashMap数据结构
HashMap数据结构原创 2023-02-25 12:29:01 · 322 阅读 · 0 评论 -
Java8(JDK1.8)新特性
Java8(JDK1.8)新特性原创 2023-02-25 12:29:16 · 1046 阅读 · 0 评论 -
【无标题String、StringBuffer、StringBuilder区别】
【无标题String、StringBuffer、StringBuilder区别】原创 2023-02-25 12:27:45 · 338 阅读 · 0 评论 -
XXL-JOB任务调度平台
xxl-job是一个分布式的任务调度平台,其核心设计目标是:学习简单、开发迅速、轻量级、易扩展,现在已经开放源代码并接入多家公司的线上产品线,开箱即用。xxl是xxl-job的开发者大众点评的许雪里名称的拼音开头。分布式任务调度平台,目前比较主流的是elasticjob和xxl-job。原创 2023-02-25 11:41:40 · 618 阅读 · 0 评论 -
Java并发编程:锁机制Lock用法示例
Lock和synchronized有一点非常大的不同,采用synchronized不需要用户去手动释放锁,当synchronized方法或者synchronized代码块执行完之后,系统会自动让线程释放对锁的占用;而Lock则必须要用户去手动释放锁,如果没有主动释放锁,就有可能导致出现死锁现象。package com.expgiga.JUC;import java.util.concurrent.locks.Lock;import java.util.concurrent.locks.Reentr.原创 2021-02-03 12:41:28 · 211 阅读 · 0 评论 -
一篇文章5分钟总结Java常见线程安全类
一、概念:线程安全:就是当多线程访问时,采用了加锁的机制;即当一个线程访问该类的某个数据时,会对这个数据进行保护,其他线程不能对其访问,直到该线程读取完之后,其他线程才可以使用。防止出现数据不一致或者数据被污染的情况。线程不安全:就是不提供数据访问时的数据保护,多个线程能够同时操作某个数据,从而出现数据不一致或者数据污染的情况。对于线程不安全的问题,一般会使用synchronized关键字加锁同步控制。线程安全 工作原理: jvm中有一个main memory对象,每一个线程也有自己的working原创 2021-02-03 12:23:02 · 756 阅读 · 1 评论 -
Java并发修改异常的源码解析
代码复现List<String> list = new ArrayList<>();list.add("a");list.add("b");list.add("c");for (String str : list) { if ("a".equals(str)) { list.remove("a"); }}出现并发修改异常 ConcurrentModificationException产生原因at java.base/jav原创 2021-01-26 16:06:02 · 173 阅读 · 0 评论 -
3句话帮你搞定Java I/O底层原理之一:字符流、字节流及其区别
Java中字符流与字节流什么是流?Java中的流是对字节序列的抽象。数据在两设备间的传输称为流,流的本质是数据传输。程序中的输入输出都是以流的形式保存的,流中保存的实际上全都是字节文件。我们可以想象有一个水管,只不过现在流动在水管中的不再是水,而是字节序列。流是一组有顺序的,有起点和终点的字节集合。即数据在两设备间的传输称为流,流的本质是数据传输,根据数据传输特性将流抽象为各种类...原创 2020-03-29 14:03:46 · 1028 阅读 · 5 评论 -
5分钟快速掌握Java 类加载器
Java 类加载器什么是Java 类加载器?类加载器(class loader)用来加载 Java 类到 Java 虚拟机中。一般来说,Java 虚拟机使用 Java 类的方式如下:Java 源程序(.java 文件)在经过 Java 编译器编译之后就被转换成 Java 字节代码(.class 文件)。类加载器负责读取 Java 字节代码,并转换成 java.lang.Clas...原创 2020-03-25 20:42:16 · 1475 阅读 · 2 评论 -
5分钟细数Java多态神级坑题:Test.main()函数执行后的输出是( )
题目Test.main()函数执行后的输出是( )class Test { public static void main(String[] args) { System.out.println(new B().getValue()); } static class A { protected int value; pu...原创 2020-03-21 14:01:52 · 824 阅读 · 2 评论 -
5分钟学会hashMap和hashtable的主要知识点
HashMap和HashTable的主要知识点HashMapHashMap是一个“链表数列”的结构,底层为一个数组,数组里面每一项是一个链表。HashMap中有两个参数可以影响其性能:“初始容量”和“装填因子”。HashMap实现不同步,线程不安全。(HashTable线程安全)。HashMap中的key-value都是存储在Entry中的。HashMap可以存null键和null...原创 2020-03-21 11:25:52 · 466 阅读 · 0 评论 -
Java 守护线程,看这篇文章就对了! ( Daemon Thread )
Java 的守护线程Java 守护线程,看这篇文章就对了!Java 的守护线程什么是Java的守护线程( Daemon Thread )?守护线程的区别?守护线程的作用?守护线程如何创建?守护线程如何判断?守护线程使用的注意事项总结什么是Java的守护线程( Daemon Thread )?Java 提供了两种类型的线程:守护线程 和 用户线程用户线程 (User Thread) 是...原创 2020-03-16 16:17:48 · 772 阅读 · 2 评论 -
指出下列程序运行的结果()
题目指出下列程序运行的结果()public class Example{ String str = new String("good"); char[ ] ch = { 'a' , 'b' , 'c' }; public static void main(String args[]){ Example ex = new Example(); ...原创 2020-03-15 16:23:17 · 7296 阅读 · 0 评论 -
2分钟避开Java Math.ceil() .floor()方法的坑
语法ceil() 方法可对一个数进行上舍入,返回值大于或等于给定的参数,类型为双精度浮点型。floor() 方法可对一个数进行下舍入,返回给定参数最大的整数,该整数小于或等给定的参数。该方法有以下几种语法格式:double ceil(double d)double ceil(float f)double floor(double d)double floor(float f)...原创 2020-03-13 13:03:42 · 680 阅读 · 0 评论 -
一篇文章总结Java所有关键字
Java中的关键字有哪些?Java共有50个关键字,其中分为48个关键字+2个保留字。48个关键字为:abstract、assert、boolean、break、byte、case、catch、char、class、continue、default、do、double、else、enum、extends、final、finally、float、for、if、implements、import...原创 2020-03-11 11:17:37 · 197 阅读 · 0 评论 -
Java中3大线程安全的map
线程安全的map:Hash Table,SynchronizedMap,ConcurrentHashMap原创 2020-03-11 11:15:21 · 4480 阅读 · 0 评论 -
五句话帮你总结Java构造方法
五句话总结Java构造方法构造方法的方法名必须与类名相同。构造方法没有返回类型,也不能定义为void,在方法名前面不声明方法类型。构造方法的主要作用是完成对象的初始化工作,它能够把定义对象时的参数传给对象的域。一个类可以定义多个构造方法,如果在定义类时没有定义构造方法,则编译系统会自动插入一个无参数的默认构造器,这个构造器不执行任何代码。构造方法可以重载,以参数的个数...原创 2020-03-10 14:43:58 · 220 阅读 · 0 评论 -
3分钟教你搞定Java移位运算符
java中一共有三种移位运算符:<< : 左移运算符,num << 1,相当于num乘以2>> : 右移运算符,num >> 1,相当于num除以2>>> : 无符号右移,忽略符号位,空位都以0补齐下面来看看这些移位运算都是怎样使用的:public class Test {...原创 2020-03-10 14:26:11 · 489 阅读 · 0 评论 -
一篇文章快速搞懂Java中的四种访问权限
Java中的四种访问权限范围同一个类同一个包不同包的子类不同包的非子类public√√√√protected√√√缺省(default)√√private√说明Java中有四种访问权限,其中三种有访问权限修饰符,分别为private、public、protected,还有一种不带任何修饰符(default)。...原创 2020-03-09 11:28:33 · 261 阅读 · 0 评论 -
正则表达式匹配
正则表达式匹配\d 匹配一个数字字符。等价于 [0-9]。\D 匹配一个非数字字符。等价于 [^0-9]。\f 匹配一个换页符。等价于 \x0c 和 \cL。\n 匹配一个换行符。等价于 \x0a 和 \cJ。\r 匹配一个回车符。等价于 \x0d 和 \cM。\s 匹配任何空白字符,包括空格、制表符、换页符等等。等价于 [...原创 2020-03-07 14:35:30 · 501 阅读 · 0 评论 -
Java反射简述
Java的反射定义反射指的是在运行时能够分析类的能力的程序。反射机制可以用来在运行时分析类的能力–检查类的结构所用到的就是java.lang.reflect包中的Field、Method、Constructor,分别用于描述类的与、方法和构造器。在运行时查看对象。实现通用的数组操作代码。反射机制的功能在运行时判断任意一个对象所属的类;在运行时构造任意一...原创 2020-03-06 22:30:14 · 654 阅读 · 0 评论 -
写给大忙人看的Java内部类
Java内部类定义把类定义在另一个类的内部,该类就被称为内部类。举例:把类B定义在类A中,类B就被称为内部类。访问规则内部类可以直接访问外部类的成员,包括私有。外部类要想访问内部类成员,必须创建对象。分类成员内部类成员内部类不是静态的外部类名.内部类名 对象名 = new 外部类名().new 内部类名();成员内部类是静态的外部类名.内部类名 对象名 = n...原创 2020-03-06 21:53:36 · 167 阅读 · 0 评论 -
Java 包机制的作用
下面关于Java package的描述,哪个是正确的:()I. 包不提供将所有类名分区为更易管理的块的机制.II. 包提供可见性控制机制.III. 包的一个重要属性是包内定义的所有类都可以通过该包外的代码访问.IV. 声明为包的一部分的类的.class文件可以存储在多个目录中.原创 2020-03-04 21:33:04 · 1174 阅读 · 0 评论 -
Java StringBuffer的length()和capacity()方法比较
StringBuffer类和String类差不多,都是字符串类,只是StringBuffer在对字符串进行修改时不会生成新的对象,所以效率相对较高,占用空间也小。length()方法和capacity()方法都是获取StringBuffer的长度。length()返回字符串的实际长度;capacity()返回字符串所占容器的总大小。...原创 2020-03-03 15:15:59 · 522 阅读 · 0 评论 -
Java 的重写(Override)
定义重写指的是在Java的子类与父类中有两个名称、参数列表都相同的方法的情况。由于他们具有相同的方法签名,所以子类中的新方法将覆盖父类中原有的方法。重写是子类对父类的允许访问的方法的实现过程进行重新编写, 返回值和形参都不能改变。即外壳不变,核心重写!重写的好处在于子类可以根据需要,定义特定于自己的行为。 也就是说子类能够根据需要实现父类的方法。重写方法不能抛出新的检查异常或者比被重写方...原创 2020-03-03 14:00:32 · 275 阅读 · 0 评论 -
数组初始化的三种方式
数组初始化的三种方式动态初始化:数组定义与为数组分配空间和赋值的操作分开进行;静态初始化:在定义数字的同时就为数组元素分配空间并赋值;默认初始化:数组是引用类型,它的元素相当于类的成员变量,因此数组分配空间后,每个元素也被按照成员变量的规则被隐式初始化。public class Test { public static void main(String[] args) { ...原创 2020-03-03 13:54:42 · 6366 阅读 · 0 评论 -
Java List类
在集合类中,List是有序的Collection,使用此接口能够精确的控制每个元素插入的位置。List的行为和数组几乎完全相同:List内部按照放入元素的先后顺序存放,每个元素都可以通过索引确定自己的位置,List的索引和数组一样,从0开始。用户能够使用索引(元素在List中的位置,类似于数组下标)来访问List中的元素,这类似于Java的数组。定义 void add(String it...原创 2020-03-02 12:52:37 · 344 阅读 · 1 评论 -
Java程序的种类
Java程序的种类有:Application―Java应用程序”是可以独立运行的Java程序。由Java解释器控制执行。Applet―Java小程序”不能独立运行(嵌入到Web页中)。由Java兼容浏览器控制执行。Serverlets是Java技术对CGI 编程的解决方案。是运行于Web server上的、作为来自于Web browser 或其他HTTP client端的请求和在...原创 2020-03-02 12:42:11 · 441 阅读 · 0 评论 -
5分钟教你搞懂Java中 == 和 equals 的区别
= = 的含义对于基本类型和引用类型 == 的作用效果是不同的,如下所示:基本类型:比较的是值是否相同;引用类型:比较的是引用是否相同;代码示例:String x = "string";String y = "string";String z = new String("string");System.out.println(x==y); // trueSystem....原创 2020-03-02 12:29:14 · 211 阅读 · 0 评论 -
浅谈JVM的垃圾回收算法
垃圾回收的意义Java语言中一个显著的特点就是引入了垃圾回收机制,使c++程序员最头疼的内存管理的问题迎刃而解,它使得Java程序员在编写程序的时候不再需要考虑内存管理。由于有个垃圾回收机制,Java中的对象不再有“作用域”的概念,只有对象的引用才有“作用域”。垃圾回收可以有效的防止内存泄露,有效的使用空闲的内存。那些内存需要回收?我们都知道JVM的内存结构包括五大区域:程序计数器、...原创 2020-03-01 15:26:57 · 209 阅读 · 0 评论 -
基本类型、包装类型与自动拆装箱
Java的8种数据类型Java 的每个基本类型都对应了一个包装类型,比如说 int 的包装类型为 Integer,double 的包装类型为 Double。基本类型包装类booleanBooleanbyteByteshortShortintIntegerlongLongfloatFloatdoubleDoublecha...原创 2020-02-22 18:51:31 · 413 阅读 · 0 评论 -
Java值传递与引用传递
1、形参与实参形参:方法被调用时传递的参数,如:fun(int a)中的a,只有在fun被调用期间a才被分配内存空间,在fun方法被执行完成后,a就会被销毁释放空间。实参:方法被调用时传递的实际值,在方法被调用前就已经初始化并在被调用时传入。1public static void fun(int b){2 b=20;3 System.out.println(b);4}5pub...原创 2020-02-21 15:54:00 · 168 阅读 · 0 评论 -
Java抽象类
在面向对象的概念中,所有的对象都是通过类来描绘的。类继承的作用主要是扩充已有类的功能。子类可以根据需要选择是否要覆写父类的方法,所以一个设计完善的父类无法对子类做出任何强制性的覆写规定。为了解决这一问题,提出了抽象类的概念,抽象类与普通类相比唯一增加的就是抽象方法的定义,同时抽象类在使用时要求抽象类必须被子类所继承,并且覆写抽象类中全部抽象方法。抽象类除了不能实例化对象以外,其他功能仍然存在。...原创 2020-02-20 15:54:38 · 108 阅读 · 0 评论 -
Java对象初始化顺序
Java对象初始化顺序优先级:静态区(代码块、成员变量)优先1级>普通代码块(成员变量)同级>构造方法 同级父类>子类总体顺序:父类静态区(代码块、成员变量 )子类静态区(代码块、成员变量 )父类普通代码块、成员变量父类构造方法子类普通代码块、成员变量子类构造方法注意事项:静态内容仅在类加载时加载一次,后续再次创建实例时不再执行。class Fa...原创 2020-02-18 13:43:08 · 122 阅读 · 0 评论 -
Java多态向上转型题 假定Base b = new Derived(); 调用执行b.methodOne()后,输出结果是什么?
假定Base b = new Derived(); 调用执行b.methodOne()后,输出结果是什么?题目:public class Base{ public void methodOne() { System.out.print("A"); methodTwo(); } public void methodTwo() { ...原创 2020-02-18 12:55:07 · 1313 阅读 · 0 评论 -
JVM堆内存原理
#堆内存分类JVM 堆内存分为2块:Permanent Space 和 Heap Space。Permanent 即 持久代(Permanent Generation),主要存放的是Java类定义信息,与垃圾收集器要收集的Java对象关系不大。Heap = { Old + NEW = {Eden, from, to} },Old 即 年老代(Old Generation),New 即 年轻代...原创 2020-02-17 15:59:53 · 225 阅读 · 0 评论