分类: 代码控

热爱Code,不留Bug

57 篇文章

Java注解
概念 Java 注解(Annotation)又称 Java 标注。 Java 语言中的类、方法、变量、参数和包等都可以被标注。 Java 注解可以通过反射获取标注内容。 在编译器生成类文件时,注解可以被嵌入到字节码中,在运行时可以获取到标注内容 。 简单使用 声明一个注解 //指定该注解的保留策略:运行时保留 @Retention(Retentio…
Java多线程及高并发基础
JUC多线程及高并发 常用包 java.util.concurrent 并发包(JUC) java.util.concurrent.atomic(原子) java.util.concurrent.locks 相关概念 并发:多线程去访问同一资源 并行:线程之间互不影响 Volatile关键字 作用 线程可见:保证了不同线程对这个变量进行操作时的可见…
逆波兰表达式与表达式求值
昨天复习栈和队列的时候看到了逆波兰表达式,虽然之前有所学习,但是并没有动手实践,今天用Java实践了一下。 里面用到了栈和队列,顺便总结下栈和队列。 栈 队列 Java对象 Stack Queue 特征 先进后出,后进先出 先进先出,后进后出 入 push(obj) offer(obj) 读 peek() peek() 出 pop() poll()…
JVM3.2:虚拟机栈
虚拟机栈 虚拟机栈的背景 由于跨平台性的设计,java的指令都是根据栈来设计的。不同平台CPU架构不同,所以不能设计为基于寄存器的。 根据栈设计的优点是跨平台,指令集小,编译器容易实现,缺点是性能下降,实现同样的功能需要更多的指令。 内存中的堆与栈 栈是运行时的单位,而堆是存储的单位 1.栈解决程序的运行问题,即程序如何执行,或者说如何处理数据。堆…
JVM3.1:PC寄存器
PC寄存器 JVM中的程序计数寄存器(Program Counter Register)中,Register的命名源于CPU的寄存器,寄存器存储指令相关的现场信息。CPU只有把数据装载到寄存器才能够运行。JVM中的PC寄存器是对物理PC寄存器的一种抽象模拟。 一个线程对应一个 JVM Stack。JVM Stack 中包含一组 Stack Fram…
JVM2:类加载子系统
JVM细节版架构图 注: BootStrapClassLoader:引导类加载器 ExtensionClassLoader:扩展类加载器 ApplicationClassLoader:系统类加载器 本文针对Class Loader SubSystem这一块展开讲解类加载子系统的工作流程 类加载子系统作用 1.类加载子系统负责从文件系统或者网络中加载…
JVM1:JVM 和 Java 体系架构
JVM作用 JVM是运行在操作系统之上的,并没有和硬件有直接的交互 Java代码一次编译,到处运行 JVM架构 方法区(永久代)在jdk8中又叫做元空间(Metaspace) 方法区用于存储已被虚拟机加载的类信息、常量、静态变量、即时编译器(JIT编译器,英文写作Just-In-Time Compiler)编译后的代码等数据。 虽然Java虚拟机规…
Mybatis逆向工程简介
什么是逆向工程 在传统开发中,开发者需要自己去写实体类、SQL语句、Dao层的方法等。Mybatis为我们提供了逆向工程,只需要指定数据库的表,Mybatis就能自动生成实体类和mapper映射。大大节约了开发时间。 步骤 搭建Mybatis框架 前面Mybatis入门有讲,此处略。 引入Mybatis逆向工程包 传统开发搜索Mybatis Gen…
Vue.js入门实战了一下
最近学习了Vue.js,还没学完,懂了基础,于是就用Vue.js实战了一下,花了两三天课余做了一个音乐盒。感觉用Vue.js真是太方便开发了。音乐盒
Vue.js入门及常用指令
简介 Vue.js是一套构建用户界面的渐进式框架。与其他重量级框架不同的是,Vue 采用自底向上增量开发的设计。Vue 的核心库只关注视图层,并且非常容易学习,非常容易与其它库或已有项目整合。另一方面,Vue 完全有能力驱动采用单文件组件和Vue生态系统支持的库开发的复杂单页应用。 Vue.js 的目标是通过尽可能简单的 API 实现响应的数据绑定…