标签:java
对于下图所示的二叉树 其先序、中序、后序遍历的序列如下: 先序遍历: A、B、D、F、G、C、E、H 中序遍历: B、F、D、G、A、C、E、H 后序遍历: F、G、D、B、H、E、C、A 层序遍历: A、B、C、D、E、F、G、H /** * Definition for a binary
 背景   在jdk1.6以前synchronized的java内置锁不存在 偏向锁->轻量级锁->重量级锁 的锁膨胀机制,锁膨胀机制是1.6之后为了优化java线程同步性能而实现的。而1.6之前都是基于monitor机制的重量级锁。因为java内部对锁实现的封装,就算现在我们也只需要
今天来讲些抽象的东西 -- 对象头,因为我在学习的过程中发现很多地方都关联到了对象头的知识点,例如JDK中的 synchronized锁优化 和 JVM 中对象年龄升级等等。要深入理解这些知识的原理,了解对象头的概念很有必要,而且可以为后面分享 synchronized 原理和 JVM 知识的时候
好记性不如烂笔头,写笔记是为了回头看的。 谁要是不小心搜了看了,如有不足之处敬请谅解。 一、准备工作 虚拟机centos7.X,docker1.3.X,Win10 Idea2018.1 默认Idea已经下载了Docker插件 默认虚拟机docker已经装了jdk 二、开始 1. 打开docker配
在我们分析synchronized关键字底层信息时,其中谈到了Monitor对象,它是由C++来实现的,那,到底它长啥样呢?我们在编写同步代码时完全木有看到该对象的存在,所以这次打算真正来瞅一下它的真正面目,而对于这个Hospot代码JDK是并没有开源的,但是社区版本的JDK是开源了,在openj
前面我们看到了Lock和synchronized都能正常的保证数据的一致性(上文例子中执行的结果都是20000000),也看到了Lock的优势,那究竟他们是什么原理来保障的呢?今天我们就来探讨下Java中的锁机制! Synchronized是基于JVM来保证数据同步的,而Lock则是在硬件层面,依
原文:Window系统的mysql数据库定时备份 - Stars-One的杂货小窝 最近老大提到了数据库备份的功能,由于服务器是window系统的,所以研究了下备份的方案,特此记录 主要是实现每天定时备份功能,如果还要搞容灾的话,就得对mysql数据库进行主从配置了 cmd命令 核心的cmd命
JZ38 字符串的排列 描述 输入一个长度为 n 字符串,打印出该字符串中字符的所有排列,你可以以任意顺序返回这个字符串数组。 例如输入字符串ABC,则输出由字符A,B,C所能排列出来的所有字符串ABC,ACB,BAC,BCA,CBA和CAB。 题目主要信息 给定一个长度为n的字符串,求其中所有
简单记录一下springboot引用kettle对接数据 第一步(这一步讲述了下载kettle、创建数据库连接、转换等,如果这一步会的可以略过,直接看第二步) 先从kettle官网下载kettle,官网地址:https://sourceforge.net/projects/pentaho/ 进入官
SSM 目录SSMSpringIOC(控制反转)& DI(依赖注入)Bean注入方式AOP(面向切面编程)一、AOP编程思想1.1 什么是AOP1.2 为什么需要AOP1.3 AOP实现方法分类二、AOP的专有名词三、认识SpringAOP3.1 SpringAOP的特点3.2 Sprin
Oracle Java官方介绍 本文章以jdk8为基础进行编写,如果想查看后续的版本可以前往jdk版本目录下查看。 翻译自:https://docs.oracle.com/javase/tutorial/getStarted/intro/definition.html 关于 Java 技术 J
前言 说起数组转换成 ArrayList,很多同学第一反应就是遍历数组,将元素逐个添加到 ArrayList 中,但是这个看着就lower,一般不会这么答。 所以马上就会想到Arrays工具类的 asList 方法,如果你这么答,那么恭喜你,答错入坑。 为什么不能用 Arrays 的 asL
1.基本概念 java.util.Optional<T>类本质上就是一个容器,该容器的数值可以是空代表一个值不存在,也可以是非空代表一个值存在。   2.获取对象 2.1 相关方法 2.2 案例详解     3.获取数值 3.1 相关方法 3.2 案例详解   4.处理数值 4.
目录Java18(2022.3)Java17(2021.9)(LTS版本)Java16(2021.3)Java15(2020.9)Java14(2020.3)Java13(2019.9)Java12(2019.3)Java11(2018.9)(LTS版本)Java10(2018.3)Java9(2
目录1 编译器分类2 Javac编译器2.1 Javac简介2.2 Javac与程序开发3 Javac工作过程3.1 解析与填充符号表3.1.1 词法分析3.1.2 语法分析3.1.3 填充符号表3.2 注解处理3.3 语义分析3.3.1 标注检查3.3.2 数据及控制流分析3.3.3 解语法糖
12.1、删除指定目录中的内容: del /Q E:DATABAK* copy 1.txt baka.txt 12.2、可用的备份计划: 1、脚本: BakScripts @echo off REM ---------------------------------
在windows中备份mysql 数据库的方法有很多种,如有常用的WinRAR备份mysql、mysqldump备份成sql文件、xcopy 直接复制文件形式备份数据库,下面我来总结一下这些方法,并给出相关实例。 第一种:新建批处理文件 backup.dat,里面输入以下代码: net sto
java语法解析器的核心类是com.sun.tools.javac.parser.JavacParser,令人惊讶的是java并没有使用antlr这样现成的的工具,而是选择手写。推测可能是为了性能的考虑吧。 接下来,让我们膜拜下大师的代码。 JavacParser.parseCompilation
一、生成符号表 填充符号表的核心逻辑在com.sun.tools.javac.comp.Enter类。 在讨论填充符号表的逻辑之前,首先要明确一下,什么是符号? 我们在java代码中,可能会声明一个类,类中有属性和方法,这些对于计算机而言,都是一种符号。 在java编译器的实现中,定义了专门的符号