标签: Java

24 篇文章

Java春招面经
笔试面经 海康威视 笔试 编程题:设计一个单例模式 编程题:给定一个整数序列,求子序列最小和。 结果 简历复筛刷掉了。 奇安信 笔试 编程题 有n个牛。每只牛有食草量和产奶量。如果牛A的食草量比牛B的食草量高,但牛A的产奶量却比牛B的产奶量低,那么这两只牛就会打架。在这n只牛中挑几只牛放一块儿,要求不能打架,求出最高能得到的产奶量。 最短路径问题:…
Java多线程及高并发基础
JUC多线程及高并发 常用包 java.util.concurrent 并发包(JUC) java.util.concurrent.atomic(原子) java.util.concurrent.locks 相关概念 并发:多线程去访问同一资源 并行:线程之间互不影响 Volatile关键字 作用 线程可见:保证了不同线程对这个变量进行操作时的可见…
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虚拟机规…
Spring MVC入门
Spring MVC简介 Spring web mvc和Struts2都属于表现层的框架,它是Spring框架的一部分,我们可以从Spring的整体结构中看得出来,如下图: Spring MVC处理流程 graph LR; C(客户端)--1.用户请求-->D(前端控制器<br/>DispatcherServlet) D--2.请…
Struts2拦截器
Struts2执行流程 客户端向服务器发送一个Action的请求 执行核心过滤器的doFilter()方法。 在doFilter()方法中,调用executeAction()方法, 在executeAction()内部调用dispatcher.serviceAction(); 在serviceAction()内部创建一个Action代理, 最终执行…
Struts2进阶:Servlet的API的访问及数据封装
Struts2的Servlet的API的访问 在使用Struts2的框架的过程中,发现Struts2和Servlet的API是解耦合的。在实际开发中,经常使用到Servlet的API,比如进行登录,将用户的信息保存到Session中,有的时候需要向页面输出一些内容,用到response对象。涉及到Servlet的API的访问。 Struts2的Se…
Struts2入门:简述及基本配置
Struts2的概述 什么是Struts2 Struts2是一个基于MVC设计模式的Web应用框架,它本质上相当于一个servlet,在MVC设计模式中,Struts2作为控制器(Controller)来建立模型与视图的数据交互。Struts 2是Struts的下一代产品,是在 struts 1和WebWork的技术基础上进行了合并的全新的Stru…