自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

yZzc_XQ的博客

在分享中学习,在学习中分享

  • 博客(40)
  • 资源 (3)
  • 问答 (1)
  • 收藏
  • 关注

原创 深入理解Java虚拟机——04_深入JVM与垃圾回收机制

深入JVM与垃圾回收机制深入JVM与垃圾回收机制(1) 基本概念:(2) 运行过程:(3) 跨平台的原因1.线程2.内存区域1)程序计数器(线程私有)面试常问CPU时间片并行与并发2)虚拟机栈(线程私有)3)本地方法栈(线程私有)4)堆(Heap-线程共享)5)方法区/永久代(线程共享)3.JVM运行时内存1)新生代①Eden 区:②ServivorFrom:③ServivorTo:④MinorGC(YGC) 的过程:2)老年代分代算法调优:**尽量减少FGC**为什么需要STW?3)永久代(jdk7)/元

2020-07-26 10:57:57 214

原创 JUC学习笔记及拓展

JUC学习笔记及拓展Java JUC1 Java JUC简介2 volatile 关键字-内存可见性2.1 内存可见性2.2 volatile 关键字3 原子变量与CAS算法3.1 原子变量3.1.1 i++的原子性问题3.1.2 原子变量3.2 CAS算法3.2.1 ABA问题3.2.2 CAS在JAVA中底层的实现3.3 原子性与可见性区别4 ConcurrentHashMap4.1 锁粒度4.2 锁分段4.3 其它4.4 写入并复制5 CountDownLatch(闭锁)5.1 概念5.2 方法介绍6

2020-06-05 16:00:21 2877 4

原创 深入理解Java虚拟机——01_JVM初识

JVM初识JVM简介1.JVM的位置2.一些常见的JVM3.Android虚拟机 DVM4.JVM类加载机制4.1.java代码执行流程4.2.栈的指令集架构和寄存器的指令集架构4.3.jvm生命周期4.3.1.启动4.3.2.执行4.3.3.退出JVM简介1.JVM的位置2.一些常见的JVM使用JIT(编译器)能提升效率,但是程序刚运行时,因为要翻译成机器指令,加载到缓存会卡顿,暂停一下。解释器和JIT可以理解为步行和乘公交车。解释器步行上班,JIT乘公交车上班(需要等公交,转车的时候等待,

2020-05-26 11:43:44 440

转载 COUNT(1) 和 COUNT(*) COUNT(字段) 傻傻分不清

写 SQL 的时候突然想到一个问题:COUNT(1) 和 COUNT(*) 有啥区别?COUNT(字段) 呢?在数据库的增删改查操作中,使用最频繁的就是查询操作。而在所有查询操作中,统计数量操作更是经常被用到。关于数据库中行数统计,无论是MySQL还是Oracle,都有一个函数可以使用,那就是COUNT但是,就是这个常用的COUNT函数,却暗藏着很多玄机,尤其是在面试的时候,一不小心就会被虐。不信的话请尝试回答下以下问题:1、COUNT有几种用法?2、COUNT(字段名)和COUNT(*)的.

2020-10-11 22:35:34 298 1

原创 Scala深入浅出——从Java到Scala

本文适合有一定Java基础的,并想系统学习Scala的小伙伴借鉴学习。文章有大量实例,建议自己跑一遍。Scala深入浅出——从Java到ScalaScala一、介绍1、什么是Scala?2、特点3、安装二、Scala特点三、scala的基本语法1、声明变量2、输出3、字符串4、数据类型4.1、scala类型层次结构5、标识符6、运算符7、表达式7.1、条件表达式7.2、块表达式7.3、循环7.3.1、for循环7.3.2、Breaks类7.3.3、while循环8、方法8.1、方法参数9、函数9.1、.

2020-09-05 21:36:45 337

原创 Java8 新特性——流式操作

流式操作流(Stream):Java8新增 , 用来处理我们集合的数据(与IO包里的流是完全不同的概念),倒是和Spark Streaming很像(反正是抄的)如何处理集合中的数据呢(为什么引入流)?声明式处理数据;(元素的内部迭代,不需要做外部迭代)【流可以把一些基础操作连接起来,用于表达更加复杂的数据处理的流水线】【类似自然语言,类似sql】流内部可以做并行操作。(内部迭代)【底层帮我们,多线程来处理数据,不需要我们来控制】先看一个小案例:public class Dish { //

2020-08-30 10:13:47 330

原创 你真的懂equals()吗?

Java中Integer的true或者false问题是一个非常常见的问题,也就是==和equals的关系,那你真的懂什么是equals吗?你可能会想:不就是比较地址和比较值嘛,小学生都会,那你怕是对equals有什么误解。本文参考:Java3y你真的懂equals()吗?之前我也以为这个知识点了,但是当我真正看到这道题时,我还是做错了。public class Main { public static void main(String[] args) { .

2020-08-13 19:10:30 163

转载 Java堆内存是线程共享的吗?

Java堆内存是线程共享的吗?看似简单却暗藏玄机。本文来源:敖丙。Java堆内存是线程共享的吗?Java对象的内存分配过程是如何保证线程安全的?什么是TLABTLAB带来的问题TLAB使用的相关参数总结多说几句Java作为一种面向对象的,跨平台语言,其对象、内存等一直是比较难的知识点,所以,即使是一个Java的初学者,也一定或多或少的对JVM有一些了解。可以说,关于JVM的相关知识,基本是每个Java开发者必学的知识点,也是面试的时候必考的知识点。在JVM的内存结构中,比较常见的两个区域就是堆内.

2020-08-11 20:50:37 696

原创 从markword了解Java锁升级过程

锁升级过程JDK8 markword实现表64位最新版无锁 - 偏向锁 - 轻量级锁 (自旋锁,自适应自旋)- 重量级锁synchronized优化的过程和markword息息相关用markword中最低的三位代表锁状态 其中1位是偏向锁位,两位是普通锁位如果有线程上锁上偏向锁,指的就是,把markword的线程ID改为自己线程ID的过程偏向锁不可重偏向 批量偏向 批量撤销如果有线程竞争撤销偏向锁,升级轻量级锁线程在自己的线程栈生成LockRecord ,用CAS操作将markwo

2020-08-08 16:37:14 488

原创 深入浅出Java Volatile

volatile在java中很常见,比如懒汉式单例。那为什么单例模式要加volatile呢?加volatile究竟有什么用呢?现在我们深入剖析一下volatile关键字深入浅出Volatile(眼见为实)volatile 内存可见性与指令重排序1 内存可见性1.1 什么是内存可见性1.2 volatile 关键字解决内存同步问题2 指令重排序2.1 什么是指令重排序2.2 volatile如何解决指令重排序3 DCL单例需不需要加volatile?3.1 DCL单例模式3.2 对象的创建过程(原因)4.

2020-08-08 16:20:24 153

原创 MySQL分组TOPN终极详解

MySQL分组TOPN终极详细解释终极终极详细解释…因为比较详细,适合小白看(大佬请绕道)代码比较简单,但是我一开始纠结了好久,脑壳疼首先gruop by+limit 肯定是不可以的,下面演示一下1.建表CREATE TABLE `score_info` ( `id` BIGINT(18) NOT NULL AUTO_INCREMENT, `name` VARCHAR(20) DEFAULT NULL, `class_no` VARCHAR(10) DEFAULT NULL, `s

2020-08-02 23:03:01 2375

原创 深入理解Java虚拟机——03_JVM运行时数据区初识

JVM运行时数据区初识JVM运行时数据区初识内存与线程1.内存2.分区介绍3.线程3.1 JVM系统线程JVM运行时数据区初识内存与线程1.内存内存是非常重要的系统资源,是硬盘和cpu的中间仓库及桥梁,承载着操作系统和应用程序的实时运行。JVM内存布局规定了JAVA在运行过程中内存申请、分配、管理的策略,保证了JVM的高效稳定运行。不同的jvm对于内存的划分方式和管理机制存在着部分差异(对于Hotspot主要指方法区)(图源阿里)JDK8的元数据区+JIT编译产物 就是JDK8以前的方法区2.

2020-07-26 09:57:04 141

原创 深入理解Java虚拟机——02_JVM类加载子系统

JVM类加载子系统JVM类加载子系统JVM架构图1.类加载子系统作用1.1类加载器ClassLoader角色1.2加载1.3 链接1.3.1 验证(verify)1.3.2 准备(prepare)1.3.3 解析(resolve)1.4初始化2.类加载器分类2.1 自定义类与核心类库的加载器2.2 虚拟机自带的加载器代码演示2.3 用户自定义类加载器3 ClassLoader的常用方法及获取方法3.1 ClassLoader类,它是一个抽象类,其后所有的类加载器都继承自ClassLoader(不包括启动类加

2020-07-26 09:48:04 231 1

原创 Linux常用命令快速入门

本文只介绍了Linux最为常见的命令,详情见XMindLinux常用命令快速入门命令提示符Linux常用命令用户管理su - 用户名网络管理ifconfigping文件和目录pwdlscdmkdirrmcpmv文件处理touch文件查看catheadtailmoreless文件查找find根据文件名或者正则表达式进行匹配根据文件类型进行搜索根据文件大小进行匹配grep进程管理ps压缩包管理tar其他命令通配符vim操作1.基本工作模式2.使用①命令模式②文本输入模式③末行模式命令提示符# ro

2020-07-08 23:45:55 342

原创 不能用来修饰interface的有

不能用来修饰interface的有( )(仅限外部接口)题目:不能用来修饰interface的有( )(仅限外部接口)A privateB publicC protectedD static题目及解析均来源于牛客,仅用于学习,侵权删解析:1、抽象类中的抽象方法(其前有abstract修饰)不能用private、static、synchronized、native访问修饰符修饰。原因如下:抽象方法没有方法体,是用来被继承的,所以不能用private修饰;static修饰的方法可

2020-07-08 20:00:13 22280

原创 Web三大组件——filter的使用

filter的使用Filter1.概念2.快速入门1.步骤3.filter细节4.案例4.1 使用过滤器filter实现登录验证4.2 敏感词汇过滤servlet、filter 和 listener 并称为web三大组件,本篇将讲解filter,并能通过filter经典的案例的实现加深学习。关于servlet,可以看我之前的文章。学习Servlet看这一篇就够了Filterfilter与servlet在很多的方面极其相似,但是也有不同,例如filter和servlet一样都有三个生命周期方法,同时他

2020-06-02 17:49:03 318

原创 JSP、EL、JSTL的系统学习与配合使用

JSP、EL、JSTL的系统学习与配合使用JSP、EL与JSTLJSP入门1.概念2.原理3.JSP的脚本4.JSP的内置对象JSP进阶1.指令2.注释3.内置对象EL表达式1.概念2.作用3.语法格式4.注意事项5.EL表达式的使用JSTL1.概念2.作用3.使用步骤4.常用的JSTL标签1.if2.choose3.foreach5.小练习JSP、EL与JSTLJSP入门1.概念Java Server Pages:Java服务器页面一个比较特殊的页面:可以定义html标签在前端页面展示 还

2020-06-02 10:16:04 387 1

原创 学习Servlet看这一篇就够了

Servlet深入学习Servlet入门1.概念2.快速入门3.执行原理4.Servlet的生命周期5.Servlet的优化6.IDEA和tomcat的相关配置信息的底层原理7.Servlet的体系结构HTTP1.概念:超文本传输协议2. 请求数据的数据格式 request1.请求行2.请求头3.请求空行4.请求体(正文)request1.request对象和response对象的执行原理2.request对象继承体系结构3.request功能1.获取请求消息数据1.获取请求行数据2.获取请求头数据3.获取

2020-06-02 09:52:34 473

原创 实现简单的用户登录案例

用户登陆案例所需技术:Servlet + html + Mysql + JDBCTemplate + Druid + tomcat需求分析编写login.xml页面 username password 两个输入框 还有一个提交按钮使用Druid数据库连接池技术 ,操作mysql java_123数据库 user表 (id,name,pwd,insert_time)使用JDBCTemplete 封装JDBC在后台判断用户名和密码是否正确:正确:跳转到登录成功页面 页面展示:某某某 欢迎

2020-05-24 15:02:25 1030

原创 会话技术之Cookie与Session讲解

好记性不如烂笔头会话技术会话:一次会话包含多个请求和响应.一次会话: 浏览器第一次给服务器发送请求时,会话建立,直到有一方断开连接为止. (浏览器关闭 || 服务器崩溃 等)功能:在一次会话的范围内的多次请求间共享数据方式:Cookie:客户端会话技术Session:服务器端会话技术Cookie概念:客户端会话技术,将数据保存在客户端浏览器中快速入门:创建Cookie对象,绑定数据new Cookie(String name, String v.

2020-05-22 15:41:20 167

原创 JDBC使用及其详解

JDBC学习目标理解JDBC相关概念(面试问到的时候,你能通过自己的语言描述说明什么是JDBC)能够熟练使用JDBC相关的类和接口一、初识1.概念Java DataBase Connectivity。Java 数据库连接, Java语言操作数据库2.本质其实是官方(sun公司)定义的一套操作所有关系型数据库的规则,即接口。各个数据库厂商去实现这套接口,提供数据库驱动jar包。我们可以使用这套接口(JDBC)编程,真正执行的代码是驱动jar包中的实现类。3.步骤//1.导包(对应数据

2020-05-16 09:37:22 281

原创 pip下载模块成功,python命令执行import却报错

pip下载模块成功,python命令执行import却报错今天用pip下载torch,搞了半天,但是在pycharm里import torch一直会报错:ImportError: DLL load failed: 找不到指定的模块。查了半天终于发现了问题所在并成功解决。一、判断pip是否下载成功首先需要判断是否下载成功pip list控制台输入pip list能查看所有已经成功下...

2020-04-25 15:44:45 1083 3

原创 String变量与String常量相加问题

String变量与String常量相加问题public static void main(String[] args) { String MESSAGE = "taobao"; String a = "tao" + "bao"; String b = "tao"; String c = "bao"; String d = b+c; System.out.println(a == M...

2020-04-08 17:20:08 1272

原创 进程同步与进程通信(IPC)——快速入门操作系统(3)

进程同步在多道程序环境下,进程是并发执行的,不同进程之间存在着不同的相互制约关系。为了协调进程之间的相互制约关系,引入了进程同步的概念。1. 临界区对临界资源的访问,必须互斥地进行。对临界资源进行访问的那段代码称为临界区。临界资源:​ 虽然多个进程可以共享系统中的各种资源,但其中许多资源一次只能为一个进程所使用,我们把一次仅允许一个 进程使用的资源称为临界资源。许多物理设备都属于临界...

2020-04-04 12:33:17 626

原创 进程、线程与纤程——操作系统入门(2)

进程、线程与纤程1. 进程进程是资源分配的基本单位。进程控制块 (Process Control Block, PCB) 描述进程的基本信息和运行状态,所谓的创建进程和撤销进程,都是指对 PCB 的操作。下图显示了 4 个程序创建了 4 个进程,这 4 个进程可以并发地执行。 2. 线程线程是独立调度(执行)的基本单位。一个进程中可以有多个线程,它们共享进程资源。QQ 和浏览器...

2020-04-02 21:53:39 1046 2

原创 基本类型与包装类判断是否相等问题

基本类型与包装类判断是否相等问题题目转自牛客网题目:有如下4条语句:Integer i01=59;int i02=59;Integer i03=Integer.valueOf(59);Integer i04=new Integer(59);以下输出结果为false的是:​ A.System.out.println(i01==i02);​ B.System.out.println...

2020-04-02 18:10:15 815

原创 操作系统初识——快速入门操作系统(1)

······这是一篇适合那些想要快速入门操作系统的,并且没有学习过操作系统但是不想花大量时间学习的小伙伴们学习的文章。这是第一篇概述基本特征1. 并发并发是指宏观上在一段时间内能同时运行多个程序,而并行则指同一时刻能运行多个指令。并行需要硬件支持,如多流水线、多核处理器或者分布式计算系统。操作系统通过引入进程和线程,使得程序能够并发运行。2. 共享共享是指系统中的资源可以被多个并发...

2020-03-31 22:39:58 1222

原创 Java中Stream的map算子和flatMap算子详解

map算子和flatMap算子map和flatMap都是映射(转换),那么他们之间究竟有什么区别呢?1.我们先简单了解下map算子: @org.junit.Test public void test1(){ List<String> words = Arrays.asList("hello","world"); words.stream() .map(String::l...

2020-03-28 21:58:59 810

原创 Java流中的map算子和flatMap算子的区别

map算子和flatMap算子map和flatMap都是映射(转换),那么他们之间究竟有什么区别呢?1.我们先简单了解下map算子: @org.junit.Test public void test1(){ List<String> words = Arrays.asList("hello","world"); words.stream() .map(Stri...

2020-03-28 21:13:00 399

原创 经常考的String与数组中的问题

经常考的String与数组中的问题下面这道题,我相信你肯定很熟悉,但是做了这么多遍是不是还是很疑惑呢?耐心看完,你不会后悔的。public class Example{ String str = new String("good"); char[ ] ch = { 'a' , 'b' , 'c' }; public static void main(Strin...

2020-03-27 18:23:00 254

原创 行为参数化 案例分析

行为参数化什么是行为参数化?​ 行为参数化是指可以帮我们处理频繁变更的需求的一种通用的解决方案。案例:根据重量和颜色筛选苹果public class Apple { private String color = ""; private int weight = 0; public Apple(String color, int weight) { super()...

2020-03-25 12:29:00 162

原创 Java Lambda表达式与函数式接口

Lambda表达式1.什么是Lambda表达式:简洁的表示可以传递的匿名函数的一种方式。没有名称,但是有参数列表,函数主体,返回类型。2.Lambda表达式的特性:匿名:和普通方法不一样,没有一个明确的名字;函数:Lambda表达式不属于任何一个类;传递:Lambda表达式可以作为参数(传递给方法,赋值给变量);简洁:不需要像内部类那样,需要写很多的模板代码。3.L...

2020-03-25 12:21:00 95

原创 多线程的CAS

CASCompare And Swap (Compare And Exchange) / 自旋 / 自旋锁 / 无锁独占锁:独占锁是一种悲观锁,synchronized就是一种独占锁,会导致其它所有需要锁的线程挂起,等待持有锁的线程释放锁。它认为在它修改之前,一定会有其它线程去修改它,悲观锁效率很低。乐观锁(用到的机制就是CAS):每次不加锁而是假设没有冲突而去完成某项操作,如果因...

2020-03-22 20:38:00 186

原创 为什么内部类只能访问finally修饰的外部局部变量

为什么内部类只能访问finally修饰的外部局部变量?首先要明确的是:内部类和外部类是处于同一个级别的,内部类不会因为定义在方法中就会随着方法的执行完毕就被销毁。public class Test{ public void test(final int b){ final int a = 10 ; new Thread(){ ...

2020-03-22 12:06:00 143

原创 Java注解 看这一篇就够了

注解1.概念注解:说明程序的。给计算机看的注释:用文字描述程序的。给程序员看的注解的定义:注解(Annotation),也叫元数据。一种代码级别的说明。它是JDK1.5及以后版本引入的一个特性,与类、接口、枚举是在同一个层次。它可以声明在包、类、字段、方法、局部变量、方法参数等的前面,用来对这些元素进行说明,注释。2.作用①编写文档:通过代码里标识的注解生成文档【生成文档do...

2020-03-20 10:22:00 226

原创 Java多线程的wait(),notify(),notifyAll()、sleep()和yield()方法使用详解

Java多线程中的wait(),notify(),notifyAll()、sleep()和yield()方法我们先从一个案例开始:static public class WaitingTest { //static创建静态对象,确保是同一个monitor对象 static Object obj = new Object(); public static void main...

2020-03-18 21:56:00 149

原创 JAVA反射概念及使用详解(超详细)

JAVA反射概念及使用详解一、什么是反射?反射:框架设计的灵魂框架:半成品软件。可以在框架的基础上进行软件开发,简化编码反射:将类的各个组成部分封装为其他对象,这就是反射机制​ 好处:​ 可以在程序运行过程中,操作这些对象。​ 可以解耦,提高程序的可扩展性。图片来源https://blog.csdn.net/qsbbl/article/details...

2020-03-18 21:43:00 420

原创 Java网络编程之BS架构中的服务器

Java网络编程之BS架构中的服务器模拟网站服务器,使用浏览器访问自己编写的服务端程序,查看网页效果。案例分析准备页面数据,web文件夹。复制到我们Module中,比如复制到day08中我们模拟服务器端,ServerSocket类监听端口,使用浏览器访问public static void main(String[] args) throws IOException { S...

2020-03-15 14:03:38 922

原创 如何让自己的博客被百度快速收入

如何让自己的博客被百度快速收入刚开的博客通常情况下前一两个月是不太会被百度搜到的。但是我们可以主动到搜索引擎网站上登记 ,以便提前收入Google免费登录入口:http://www.google.com/intl/zh-CN/add_url.html百度免费登录入口:http://www.baidu.com/search/url_submit.htm提交就来可以了,好好等着吧...

2020-03-14 15:18:40 243

原创 多线程中的wait(),notify(),notifyAll()、sleep()和yield()方法使用详解

多线程中的wait(),notify(),notifyAll()、sleep()和yield()方法先看一个案例static public class WaitingTest { //static创建静态对象,确保是同一个monitor对象 static Object obj = new Object(); public static void main(String[] args...

2020-03-13 22:04:41 230

Linux基础.xmind

Linux命令使用详解,需要掌握、了解、面试清晰标出。共分为Linux简介、Linux命令、Linux目录结构、vim操作四大部分,上百个知识点。

2020-07-08

loginDemo.zip

通过Servlet + html + Mysql + JDBCTemplate + Druid + tomcat实现简单的登陆案例

2020-05-24

【网络编程】-笔记.docx

软件架构CS/BS 网络通信三要素 TCP通信 Socket套接字 ServerSocket 详解

2020-03-15

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除