Java基础
文章平均质量分 62
Java基础专栏
偏偏爱吃梨
这个作者很懒,什么都没留下…
展开
-
Java 1.6 到底对synchronized做了什么?
文章目录1. 概述2. 实现同步的基础3. 实现方式4. 对象头4.1. MarkWord4.2. 类型指针4.3. 对象头的长度5.优化后synchronized锁的分类6. 锁的升级6.1. 偏向锁6.2. 轻量级锁6.3. 锁的比较7. 总结1. 概述在多线程并发编程中 synchronized 一直是元老级角色,很多人都会称呼它为 重量级锁 ,但是,随着 Java SE 1.6 版本对 synchronzied 进行了各种优化之后,有些情况它并不那么重了。本文将详细介绍 Java SE 1.6原创 2021-03-24 19:21:27 · 391 阅读 · 0 评论 -
一文搞懂位运算符( &、 |、 ~、 ^ 、<< 、>>、>>> )
位运算符分为位逻辑运算符和位移运算符。位逻辑运算符运算符含义举例规则&与a & b任何二进制位和0进行&运算,结果都是0;和1进行&运算结果都是原值|或a | b任何二进制位和0进行|运算,结果都是原值;和1进行|运算结果都是1~取反~a0的为1,1的为0^异或a ^ b相同为0,相异为1位移运算符运算符含义举例规则<<左移位a << 2空位补0原创 2021-03-05 15:32:29 · 10051 阅读 · 4 评论 -
Java中栈Stack的使用-简洁明了、一文看懂
定义栈是一种只能在一端进行插入或删除操作的线性表。(先进后出表)Java中的Stack继承Vector。实例化Stack stack = new Stack();基本使用// 判断是否为空stack.empty();//取栈顶值(不出栈)stack.peek();// 进栈stack.push(object);// 出栈stack.pop();示例public class TestStack { public static void main(String[]原创 2021-02-20 10:20:28 · 1273 阅读 · 0 评论 -
你真的会用ArrayList的subList方法吗?
导语在日常的开发中通常会遇到截取List的情况,而大多数会选择使用subList方法进行截取,但是好多人对这个方法的理解都只是停留在使用层面上?这篇文章会非常详细达到源码级别的讲解sublList方法,需要的朋友赶紧收藏起来吧。关于SubList先通过下面这个例子,看看具体的返回类型:public class TestSubList { public static void main(String[] args) { ArrayList<String> list原创 2020-05-19 18:40:24 · 2381 阅读 · 3 评论 -
一篇文章带你理解Java的IO流
一篇文章带你理解Java的IO流文章目录一篇文章带你理解Java的IO流1,基础概念2,流的分类3,字节流3.1 字节流的父类3.2 字节节点流3.3 字节过滤流(装饰类)3.4 对象序列化4,字符流4.1 字符流的概念4.2 字符输入流:Reader4.3 字符输出流: Writer5,小结1,基础概念IO :input(输入)、output(输出)内存与存储设备之间的数...原创 2019-11-16 10:47:06 · 326 阅读 · 0 评论 -
Java中的包装类的介绍
Java中的包装类的介绍1,包装类的介绍java中有8种基本的数据类型,其中每一种数据类型都对应了一种包装类。java是纯面向对象的语言,在java中的一切东西都可以用对象的形式表示,包括java中的基本数据类型。包装类中除了Integer和Character外,其他的包装类都是以java中的基本数据类型的首字母大写命名的。基本数据类型包装类byteBytes...原创 2019-11-05 16:31:06 · 553 阅读 · 0 评论 -
Java中List集合介绍(炒鸡详细呦)
Java中List集合介绍(炒鸡详细呦)1,Java集合介绍作为一个程序猿,Java集合类可以说是我们在工作中运用最多、最频繁的类。相比于数组(Array)来说,集合类的长度可变,更加方便开发。Java集合就像一个容器,可以存储任何类型的数据,也可以结合泛型来存储具体的类型对象。在程序运行时,Java集合可以动态的进行扩展,随着元素的增加而扩大。在Java中,集合类通常存在于java....原创 2019-11-04 17:07:04 · 37313 阅读 · 20 评论 -
foreach(增强for循环)和for循环的区别
foreach(增强for循环)和for循环的区别导语首先说一下foreach有的也叫增强for循环,foreach其实是for循环的一个特殊简化版。再说一下foreach的书写格式: for ( 元素类型 元素名称 :遍历数组(集合 ){ 。。。。 }foreach虽然是for循环的简化版本,但是并不是说foreach就比for更好用,foreach适用于循环次数...原创 2019-10-31 15:56:23 · 1040 阅读 · 0 评论 -
Java中面向对象的介绍(看这一篇就够了)
Java中面向对象的介绍1,基础概念1.1 对象的概念**什么是对象? **相信很多人在接触Java时,都会遇到这样一个问题,很多人应该都知道这样一句话:万物皆对象。那么问题来了,到底什么是面向对象呢?1,世间万物都是对象,但凡是能想到的都是对象。2,而面向对象则是基于面向过程的一种编程思想,对,你没有听错,就是一种编程思想,面向对象就是使你的编程思想发生一个很大的改变,面向对...原创 2019-10-30 15:53:21 · 538 阅读 · 0 评论 -
Java中final、finally和finalize的区别
Java中final、finally和finalize的区别1,关键字解读1.1 finalfinal:修饰符,用于修饰属性、方法和类。 修饰属性:表示属性是不可变的,是一个常量。 修饰方法:表示方法不可被重写(覆盖)。 修饰类:表示类没有后代,也就是常说的太监类,不可以被继承。1.2 finallyfinally:是异常处理的一部分,finally中的代码无论发...原创 2019-10-30 10:26:23 · 397 阅读 · 0 评论 -
Java中String类的常用方法
Java中String类的常用方法1,String类的介绍String类在java.lang包中,java使用String类创建一个字符串变量,字符串变量属于对象。String类是所有语言最常用的一个类,用于描述字符串事物。String类在Java中被设计成final的,类不能被继承和修改。常用的String,经常会与StringBuffer 、 StringBuilder进行对比...原创 2019-10-28 14:59:15 · 10139 阅读 · 12 评论 -
Java中重载和覆盖(重写)的区别
Java中重载和覆盖(重写)的区别1,基本概念重载(Overload)Java中的方法重载发生在同一个类里面两个或者多个方法的方法名相同但是参数不同的情况。参数不同的情况:1,参数个数不同2,参数类型不同3,参数类型排列顺序不同覆盖(Override)方法覆盖是说子类重新定义了父类的方法。方法覆盖必须有相同的方法名,参数列表和返回类型。2,区别方法重载(Overl...原创 2019-10-24 10:06:39 · 2157 阅读 · 0 评论 -
JDK的安装以及环境变量的配置
JDK的安装以及环境变量的配置1,JDK的安装JDK下载地址:点击进入官网下载进入官网后,看到这样的页面,目前JDK最新的版本是13.0.1,想使用哪个版本就找到对应的版本就行。继续,进入下载页面,根据自己的需求进行下载,如果系统是64位的,就下载64位的,如果系统是32位的,就下载32位的。注:如果不知道自己的系统是多少位的,右键我的电脑 --> 属性,然后就可以看到了。...原创 2019-10-23 18:40:11 · 303 阅读 · 0 评论 -
String、StringBuffer和StringBuilder的区别和原理
String、StringBuffer和StringBuilder的区别和原理这三个类的主要区别在两个方面:运算速度(运算性能或执行效率)和线程安全性。1,运算速度比较一般情况下,运算速度相比较:StringBuilder > StringBuffer > StringString是final类不能被继承且为字符串常量,而StringBuilder和StringBuffe...原创 2019-10-21 16:19:59 · 527 阅读 · 1 评论 -
java接口详细介绍
Java接口的详细介绍1 基础概念1.1 接口的概念官方解释:Java接口是一系列方法的声明,是一些方法特征的集合,一个接口只有方法的特征没有方法的实现,因此这些方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的行为(功能)。通俗解释:接口可以理解成是一种特殊的类,里面的方法全是公开抽象方法,里面的变量全是公开常量。众所周知,Java是单继承,仅仅只有单继承的话,扩展性就会低,...原创 2019-10-18 15:57:15 · 522 阅读 · 0 评论 -
Java的三大特性
Java三大特性导语:Java是一门面向对象的编程语言,有三大特性:封装、继承、多态。本篇文章主要讲述的是Java的这三大特性。1 封装1.1 概念封装指的是属性私有化,根据需要提供setter和getter方法来访问属性。即隐藏具体属性和实现细节,仅对外开放接口,控制程序中属性的访问级别。1.2 封装的目的封装目的:增强安全性和简化编程,使用者不必在意具体实现细节,而只是...原创 2019-10-17 14:33:17 · 261 阅读 · 0 评论 -
多线程的简单理解和使用
多线程的简单理解和使用1,基础概念1.1 进程和线程根本区别:进程:进程是操作系统资源分配的基本单位。线程:线程是任务调度和执行的基本单位。在开销方面:进程:每个进程都有独立的代码和数据空间(程序上下文),程序之间的切换会有较大的开销。线程:线程可以看做轻量级的进程,同一类线程共享代码和数据空间,每个线程都有自己独立的运行栈和程序计数器(PC),线程之间切换的开销小。所处环境...原创 2019-10-14 11:37:01 · 569 阅读 · 0 评论