Java注解
概念 Java 注解(Annotation)又称 Java 标注。 Java 语言中的类、方法、变量、参数和包等都可以被标注。 Java 注解可以通过反射获取标注内容。 在编译器生成类文件时,注解可以被嵌入到字节码中,在运行时可以获取到标注内容 。 简单使用 声明一个注解 //指定该注解的保留策略:运行时保留 @Retention(Retentio…
KXBlog小程序发布上线了!
春招圆满落幕,在校闲来无事,抱着学着玩的态度学习了一下微信小程序。 准备发布一个博客小程序,便自己写了写,又借鉴了守望轩的开源优秀代码“微慕小程序”。 于是,KXBlog发布上线了。 微信搜索栏搜索“KXBlog”即可进入,或者使用微信扫描下方小程序码。 在此感谢:守望轩的开源优秀代码:Github。
Java春招面经
笔试面经 海康威视 笔试 编程题:设计一个单例模式 编程题:给定一个整数序列,求子序列最小和。 结果 简历复筛刷掉了。 奇安信 笔试 编程题 有n个牛。每只牛有食草量和产奶量。如果牛A的食草量比牛B的食草量高,但牛A的产奶量却比牛B的产奶量低,那么这两只牛就会打架。在这n只牛中挑几只牛放一块儿,要求不能打架,求出最高能得到的产奶量。 最短路径问题:…
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虚拟机规…
许久不见
好久没来了,5月到6月一直在忙着做地推系统 6月下旬到7月中旬在做实训安卓项目。 7月下旬到现在一直在学springboot。 最近看了很多公司的校招要求,深感自己的不足。 有点后悔前两年假期没有学习知识,浪费了太多时间,现在根据校招要求疯狂弥补自己的不足。 现在来小窝的频率越来越低了,原本想在小窝做学习笔记。而现在感觉自己在博客手打笔记太慢了、效…