构造方法和this的作用

一、构造方法概述 构造方法是一个特殊的方法 是创建对象时候调用的方法 方法的名字很特殊:必须和类名保持一致,大小写都要一样 方法没有返回值 方法也没有返回值类型 构造方法无法在外部手动调用 public 类名(参数列表){ ​ 构造方法的方法体 } package com.qf.cons; publ ... »

Java面向对象(一)

一、Java面向对象学习的三条主线 1、Java类及类的成员。 属性、方法、构造器、代码块、内部类。 2、面向对象的三大特征。 封装性、继承性、多态性。 3、其他关键字。 this、super、static、final、abstract、interface、package、import等。 二、面向 ... »

JVM必不可少的知识

1.Java垃圾回收机制 对象被判断为垃圾的标准:没有被其他对象引用 2.判断对象是否可被回收 (1)引用计数算法 判断对象的引用数量 通过判断对象的引用数量来决定对象是否可以被回收 每个对象实例都有一个引用计数器,被引用则+1,完成引用则-1 任何引用计数为0的对象实例可以被当作垃圾回收 优点:执 ... »

08、异常处理

前言 去年四月份大一下半学期正式开始学习Java,一路从java基础、数据库、jdbc、javaweb、ssm以及Springboot,其中也学习了一段时间数据结构。 在javaweb期间做了图书商城项目、ssm阶段做了权限管理项目,springboot学了之后手痒去b站看视频做了个个人博客项目(已 ... »

Java集合

集合类存放在java.util包中,主要有三种:set(集),list(列表包括Queue)和map(映射)。 Collection:Collection是集合List、Set、Queue的最基本的接口。 Iterator:迭代器,可以通过迭代器遍历集合中的数据。 Map:是映射表的基础接口 。 一 ... »

transient的作用及序列化

1.transient 介绍 Java中的transient关键字,transient是短暂的意思。对于transient 修饰的成员变量,在类的实例对象的序列化处理过程中会被忽略。 因此,transient变量不会贯穿对象的序列化和反序列化,生命周期仅存于调用者的内存中而不会写到磁盘里进行持久化。 ... »

记一个有意思的面试题 → 线程交替输出问题

开心一刻 大年初一,一起嗨起来!!! 强调一句很重要的心里话:祝大家在 2021 年,健康好运,平安幸福! 问题描述 用两个线程,一个输出数字,一个输出字母,交替输出 1A2B3C4D...26Z 该如何实现? 解决方式 据说解决方式有上百种,但有些是脱了裤子放屁,有些是民间偏方,所以没必要全部都知 ... »

JVM你了解?

1.谈谈你对JAVA的理解 平台无关性(一次编译,到处运行) GC(不必手动释放堆内存) 语言特性(泛型、lambda) 面向对象(继承,封装,多态) 类库 异常处理 2.平台无关性怎么实现 Java源码首先被编译成字节码,再由不同平台的JVM解析,Java语言在不同的平台上运行时不需要进行重新编译 ... »

源码剖析ThreadPoolExecutor线程池及阻塞队列

本文章对ThreadPoolExecutor线程池的底层源码进行分析,线程池如何起到了线程复用、又是如何进行维护我们的线程任务的呢?我们直接进入正题: 首先我们看一下ThreadPoolExecutor类的源码 1 public ThreadPoolExecutor(int corePoolSize ... »

万恶的NPE差点让我半个月工资没了

引言 最近看到《阿里巴巴Java开发手册》第11条规范写到: 防止 NPE ,是程序员的基本修养 NPE(Null Pointer Exception)一直是开发中最头疼的问题,也是最容易忽视的地方。记得刚开始工作的时候所在的项目组线上出现最多的bug不是逻辑业务bug而是NPE,所以后面项目组出了 ... »

Hash Map集合和Hash Set集合

HashMap集合的使用 1.1、每个集合对象的创建(new) 1.2、从集合中添加元素 1.3、从集合中取出某个元素 1.4、遍历集合 public class HashMapTest { public static void main(String[] args) { // 创建Map集合 Ma ... »

Java中的增强for循环

JDK5.0之后推出了一个新特性,叫做增强for循环。或者叫做foreach循环 语法: for(元素类型 变量名 : 数组或集合) 优点: 简单方便 缺点: 没有下标,在需要使用下表的循环中,不建议使用foreach循环。 public class ForEachTest01 { public s ... »

多线程

1. 实现多线程 Thread 方法 下表列出了Thread类的一些重要方法: 序号 方法描述 1 public void start() 使该线程开始执行;Java 虚拟机调用该线程的 run 方法。 2 public void run() 如果该线程是使用独立的 Runnable 运行对象构造的 ... »

Java语法糖详解

语法糖 语法糖(Syntactic Sugar),也称糖衣语法,是由英国计算机学家 Peter.J.Landin 发明的一个术语,指在计算机语言中添加的某种语法,这种语法对语言的功能并没有影响,但是更方便程序员使用。简而言之,语法糖让程序更加简洁,有更高的可读性。 我们所熟知的编程语言中几乎都有语法 ... »

记一次Apache的代码导致生产服务耗时增加

引言 二狗:二胖快醒醒,赶紧看看刚才报警邮件,你上次写的保存用户接口耗时(《二胖的参数校验坎坷之路》)大大上升,赶紧排查下原因。 二胖:好的,马上看,内心戏可十足(心里却在抱怨,大中午的搅我发财美梦,刚刚梦见我买的股票又涨停了就被叫醒了)。牢骚归牢骚,自己的问题还是得看啊,毕竟是自己写的bug,含着 ... »

Java 8中字符串拼接新姿势:StringJoiner

介绍 StringJoiner是java.util包中的一个类,用于构造一个由分隔符分隔的字符序列(可选),并且可以从提供的前缀开始并以提供的后缀结尾。虽然这也可以在StringBuilder类的帮助下在每个字符串之后附加分隔符,但StringJoiner提供了简单的方法来实现,而无需编写大量代码。 ... »

Java中的深浅拷贝问题,你清楚吗?

一、前言 拷贝这个词想必大家都很熟悉,在工作中经常需要拷贝一份文件作为副本。拷贝的好处也很明显,相较于新建来说,可以节省很大的工作量。在Java中,同样存在拷贝这个概念,拷贝的意义也是可以节省创建对象的开销。 Object类中有一个方法clone(),具体方法如下: protected native ... »

final关键字

根据上下文环境,Java 的关键字 final 的含义有些微的不同,但通常它指的是“这是不能被改变的”。防止改变有两个原因:设计或效率。因为这两个原因相差很远,所以有可能误用关键字 final。 以下几节讨论了可能使用 final 的三个地方:数据、方法和类。 1)final 数据 对于编译时常量这 ... »

SpringBoot Logback无法获取配置中心属性

SpringBoot Logback无法获取配置中心属性 前言 最近在做项目中,需要把项目中的日志信息通过RabbitMQ将规定格式的消息发送到消息队列中,然后ELK系统通过消息队列拿日志并且保存起来,在日志的配置文件(logback-spring.xml)中我们需要加入RabbitMQ的配置信息, ... »