![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java
KeithRong
这个作者很懒,什么都没留下…
展开
-
JVM常见调优场景
1. JVM常用命令jps:获取当前正在运行的线程。jinfo:可以输出并修改运行时的java 进程的opts。jmap:得到运行java程序的内存分配的详细情况。例如实例个数,大小等。jstat:可以观察到classloader,compiler,gc相关信息。可以时时监控资源和性能。jconsole:java GUI监视工具,可以以图表化的形式显示各种数据。并可通过远程连接监视远程的...原创 2020-02-15 22:28:26 · 1034 阅读 · 0 评论 -
Java锁
1. Sychronized 和 LockSychronized:非公平,悲观,独享,互斥,可重入的重量级LockReentrantLock:可公平,悲观,独享,互斥,可重入,重量级锁。ReentrantReadWriteLock:可公平,悲观,写独享,读共享,读写,可重入,重量级锁。Sychronized 和 ReentrantLock 的区别synchronized是关键字,...原创 2020-02-14 16:49:11 · 89 阅读 · 0 评论 -
Java集合原理
1. List名称特点get(index)add(E)add(index, E)remove(E)ArrayList高效,线程不安全O(1)O(1)O(n)O(n)LinkedList删除更高效,查询低效O(n)O(1)O(n)O(1)Vector低效,线程安全O(1)O(1)O(n)O(n)ArrayList底层是...原创 2020-02-09 15:42:48 · 185 阅读 · 0 评论 -
线程池
1. 有哪几种线程池newFixedThreadPool(固定大小的线程池)newSingleThreadExecutor(单线程线程池)newCachedThreadPool(可缓存线程的线程池)用于并发执行大量短期的小任务。newScheduledThreadPool:用于需要多个后台线程执行周期任务,同时需要限制线程数量的场景。2. 线程池的七大参数corePoolSize...原创 2020-02-02 16:32:45 · 83 阅读 · 0 评论 -
IO流
1. 流的分类按操作数据单位不同分为:字节流(8 bit),字符流(16 bit)按数据流的流向不同分为:输入流,输出流按流的角色的不同分为:节点流,处理流IO流体系2. 流的操作2.1 操作步骤File类的实例化流的实例化读写的操作资源的关闭2.2 字符流操作文件(文本文件)读文件public void readFile(){ // 实例化File类...原创 2020-02-01 22:27:45 · 114 阅读 · 0 评论 -
线程的生命周期
一、概述要想实现多线程,必须在主线程中创建新的线程对象。Java语言使用Thread类及其子类的对象来表示线程,在它的一个完整的生命周期中通常要经历如下的五种状态:新建: 当一个Thread类或其子类的对象被声明并创建时,新生的线程对象处于新建状态就绪:处于新建状态的线程被start()后,将进入线程队列等待CPU时间片,此时它已具备了运行的条件,只是没分配到CPU资源运行:当就绪的线程...原创 2020-01-22 17:07:28 · 164 阅读 · 0 评论 -
多线程基本概念
一、进程与线程进程:正在运行的一个程序如运行中的QQ,360进程作为资源分配的单位,系统在运行时会为每个进程分配不同的内存区域线程:程序内部的一条执行路径若进行同一时间并行执行多个线程,就是支持多线程的线程作为调度和执行的单位,每个线程拥有独立运行的栈和程序计数器,线程切换开销小一个进程中的多个线程共享相同的内存单元/内存地址空间,它们从同一堆中分配对象,可以访问相同的变量和对...原创 2020-01-22 15:45:39 · 138 阅读 · 0 评论 -
Java 反射
1. 获取Class实例的三种常见方式Class clazz = String.Class;Class clazz = person.getClass(); Class clazz = Class.forName(String classPath); // 体现反射的动态性2.谈谈你对Class类的理解Class实例对应着加载到内存中的一个运行时类。3. 创建Class对应运行时类的...原创 2020-01-21 16:38:29 · 122 阅读 · 0 评论 -
JVM
架构图类加载器(ClassLoader)ClassLoader:负责加载class文件(class文件在文件开头有特定文件标识)虚拟机自带的加载器启动类加载器(Bootstrap)C++扩展类加载器(Extension)Java应用程序类加载器(AppClassLoader)用户自定义加载器:Java.lang.ClassLoader的子类双亲委派:当一个类收到了类加载请...原创 2020-01-17 21:12:56 · 162 阅读 · 0 评论 -
Java: staic、final关键字
区别final可以修饰:属性,方法,类,局部变量(方法中的变量)final修饰的属性的初始化可以在编译期,也可以在运行期,初始化后不能被改变。final修饰的属性跟具体对象有关,在运行期初始化的final属性,不同对象可以有不同的值。final修饰的属性表明是一个常数(创建后不能被修改)。final修饰的方法表示该方法在子类中不能被重写,final修饰的类表示该类不能被继承。对...转载 2020-01-16 10:23:11 · 99 阅读 · 0 评论 -
Java对象的创建
Java对象的创建过程Step1:类加载检查虚拟机遇到一条 new 指令时,首先将去检查这个指令的参数是否能在常量池中定位到这个类的符号引用,并且检查这个符号引用代表的类是否已被加载过、解析和初始化过。如果没有,那必须先执行相应的类加载过程。Step2:分配内存在类加载检查通过后,接下来虚拟机将为新生对象分配内存。对象所需的内存大小在类加载完成后便可确定,为对象分配空间的任务等同于把一块...原创 2019-12-13 15:38:55 · 89 阅读 · 0 评论 -
通用Mapper实体类常用注解
@Table注解作用:建立实体类和表的对应关系@Table(name = "tb_student")public class Student(){ private Integer id; private String name;}@Column注解作用:建立实体类字段和数据库表列名的对应关系public class Student(){ private Integer...原创 2019-11-28 20:40:46 · 2752 阅读 · 1 评论 -
SpringBoot:使用Cookie
一、所需要创建的文件业务层和数据层将不再赘述二、开始写代码CookieUtilpublic class CookieUtil { //设置Cookie public static void setCookie(HttpServletRequest request, HttpServletResponse response, String key, String val...原创 2019-08-07 15:50:55 · 1703 阅读 · 0 评论 -
SpringBoot:SpringBoot结合Jsp和Mybatis实现一个简单的登录
一、准备工作先导入一些css和js文件新建三个页面,登录页,失败页,成功页login.jsp<html><head> <title>login</title> <link rel="stylesheet" type="text/css" href="/css/bootstrap.css" /> &l...原创 2019-08-06 10:12:49 · 2596 阅读 · 0 评论 -
SpringBoot:SpringBoot整合Mybatis
一、前置知识利用IDEA创建一个SpringBoot项目二、做一些简单的配置在pom.xml中导入两个依赖:mysql 和 mybatis<dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> ...原创 2019-08-05 17:27:26 · 105 阅读 · 0 评论 -
SpringBoot:使用SpringBoot访问jsp页面
一、工具准备Postman,下载地址:https://www.getpostman.com/downloads/IDEA,下载地址:http://www.jetbrains.com/idea/二、做一些简单的配置选择File -> Project Structure选择Modules -> Web点击 “+”,选择你的项目,点击OK,最后应用就行了在main目...原创 2019-08-05 10:56:02 · 770 阅读 · 0 评论 -
SpringBoot:利用IDEA创建一个SpringBoot项目
创建步骤新建项目,选择Spring Initializr,点击NextNext到该页面,选择Web,选择Spring Web Starter,点击Next给你的项目取个名字,选择一个保存路径,点击Finish就完成了创建一个简单的Controller名为TestController代码如下@Controllerpublic class TestController { ...原创 2019-08-05 10:09:54 · 327 阅读 · 0 评论 -
SpringBoot:SpringBoot整合Shiro权限框架
一、pom.xml中导入依赖<dependencies> <!-- springboot --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-w...原创 2019-08-09 17:09:22 · 417 阅读 · 0 评论 -
SpringBoot:用IDEA搭建第一个thymeleaf页面
一、导入thymeleaf依赖包<!-- thymeleaf --><dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> <...原创 2019-08-08 15:47:58 · 1083 阅读 · 0 评论