
java
文章平均质量分 98
GrandNovice
一个头发还有不少的码农
展开
-
JVM知识
文章目录Java内存区域(运行时数据区)Java对象的创建过程对象的访问定位有哪两种⽅式?堆内存中对象的分配的基本策略Minor GC和Major GC/Full GC 有什么不同呢?如何判断对象是否死亡?(两种⽅法)简单的介绍⼀下强引⽤,软引⽤,弱引⽤,虚引⽤如何判断⼀个常量是废弃常量?如何判断⼀个类是⽆⽤的类?垃圾收集有哪些算法,各⾃的特点?HotSpot为什么要分为新⽣代和⽼年代?常⻅的垃圾回收器有那些?类文件结构类加载过程Java内存区域(运行时数据区)Java 虚拟机在执⾏ Java 程序的过原创 2020-12-18 19:17:37 · 183 阅读 · 0 评论 -
Java多线程
文章目录什么是线程和进程?请简要描述线程与进程的关系,区别及优缺点?并发和并行的区别?为什么要使用多线程呢?使用多线程可能带来什么问题?线程的生命周期和状态什么是上下文切换?什么是线程死锁?如何避免死锁?什么是线程和进程?何为进程?进程是程序的⼀次执行过程,是系统运行程序的基本单位,因此进程是动态的。系统运⾏⼀个程序即是⼀个进程从创建,运⾏到消亡的过程。在 Java 中,当我们启动 main 函数时其实就是启动了⼀个 JVM 的进程,⽽ main 函数所在的线程就是这个进程中的⼀个线程,也称主线原创 2020-12-19 22:55:09 · 234 阅读 · 0 评论 -
Java集合
文章目录说说List,Set,Map三者的区别?Arraylist 、LinkedList 与 Vector 的 区别?双向链表和双向循环链表RandomAccess接口list 的遍历方式选择HashMap 和 Hashtable 的区别HashMap 和 HashSet区别HashSet如何检查重复HashMap的长度为什么要是2的n次方HashMap 多线程操作导致死循环问题ConcurrentHashMap 和 Hashtable 的区别ConcurrentHashMap线程安全的具体实现方式/底层原创 2020-12-17 21:58:15 · 144 阅读 · 0 评论 -
Java基础
文章目录面向对象和面向过程的区别Java语言有哪些特点?JVM JDK JREJava 和 C++的区别?字符型常量和字符串常量的区别?构造器Constructor 是否可被override?重载和重写的区别Java面向对象三大特性String StringBuffer 和 StringBuilder 的区别是什么? String 为什么是不可变的?自动装箱与拆箱在⼀个静态⽅法内调⽤⼀个⾮静态成员为什么是⾮法的?在 Java 中定义⼀个不做事且没有参数的构造⽅法的作⽤接口和抽象类的区别成员变量与局部变量的区原创 2020-12-22 23:05:07 · 277 阅读 · 0 评论 -
Redis10:发布与订阅
文章目录原创 2020-11-25 11:46:54 · 168 阅读 · 0 评论 -
Redis09:AOF
文章目录AOF(Append Only File)AOF(Append Only File)将我们的所有命令都记录下来,history,恢复的时候就把这个文件全部在执行一遍!AOF以日志的形式来记录每个写操作,将Redis执行过的所有指令记录下来(读操作不记录),只许追加文件但不可以改写文件,redis启动之初会读取该文件重新构建数据,换言之,redis重启的话就根据日志文件的内容将写指令从前到后执行一次以完成数据的恢复工作AOF保存的是 appendonly.aof 文件什么是AOF快原创 2020-11-24 23:16:16 · 243 阅读 · 0 评论 -
Redis08:持久化
文章目录Redis持久化RDB(Redis DataBase)Redis持久化面试和工作,持久化都是重点!Redis 是内存数据库,如果不将内存中的数据库状态保存到磁盘,那么一旦服务器进程退出,服务器中的数据库状态也会消失。所以 Redis 提供了持久化功能!RDB(Redis DataBase)什么是RDB配置部分在快照SNAPSHOTTING在指定的时间间隔内将内存中的数据集体快照写入磁盘,也就是Snapshot快照,它恢复时是将快照文件直接读到内存里。Redis会单独创建(fo原创 2020-11-24 22:50:14 · 147 阅读 · 0 评论 -
Redis07:Redis.conf详解
文章目录Redis.conf详解bgsaveRedis.conf详解启动的时候,就通过配置文件来启动!配置文件路径[root@centos ~]# cd /usr/local/bin[root@centos bin]# lsdump.rdb dyconfig redis-benchmark redis-check-aof redis-check-rdb redis-cli redis-sentinel redis-server[root@centos bin]# cd dycon原创 2020-11-24 22:24:04 · 572 阅读 · 1 评论 -
Redis05:Jedis
文章目录基本命令事务什么是Jedis?Jedis是Redis官方推荐的java连接开发工具!使用Java操作Redis中间件!如果你要使用java操作redis,那么一定要对Jedis十分的熟悉!测试导入对应的依赖<dependencies> <dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artif原创 2020-11-24 19:07:56 · 184 阅读 · 0 评论 -
Redis04:事务
文章目录事务事务Redis 事务可以一次执行多个命令, 并且带有以下两个重要的保证:事务是一个单独的隔离操作:事务中的所有命令都会序列化、按顺序地执行。事务在执行的过程中,不会被其他客户端发送来的命令请求所打断。一次性、顺序性、排他性----队列set set set执行------Redis事务没有没有隔离级别的概念!所有的命令在事务中,并没有直接被执行!只有发起执行命令的时候才会执行!ExecRedis单条命令式保存原子性的,但是事务不保证原子性!redis的事务︰开启事务(m原创 2020-11-24 17:41:41 · 152 阅读 · 0 评论 -
Redis03:三种特殊数据类型
文章目录geospatial地理位置HyperLogLogBitmapsgeospatial地理位置官网链接六个命令GEOADD 命令 - 将指定的地理空间位置(纬度、经度、名称)添加到指定的key中127.0.0.1:6379> geoadd china:city 1116.4 39.9 beijing(error) ERR invalid longitude,latitude pair 1116.400000,39.900000127.0.0.1:6379> geoa原创 2020-11-24 16:02:41 · 148 阅读 · 0 评论 -
Redis02:五大基本数据类型
文章目录Redis-KeyStringRedis-Key127.0.0.1:6379[3]> keys * # 查看所有的key(empty array)127.0.0.1:6379[3]> select 0OK127.0.0.1:6379> keys *1) "name"2) "counter:__rand_int__"3) "mylist"4) "key:__rand_int__"5) "myhash"127.0.0.1:6379> FLUSHDB原创 2020-11-24 15:00:25 · 150 阅读 · 0 评论 -
SpringBoot17:Dubbo和Zookeeper集成
文章目录分布式理论什么是RPC测试环境搭建SpringBoot 整合 Dubbo + zookeeper上一篇:SpringBoot16:异步、定时、邮件任务分布式理论什么是分布式系统?在《分布式系统原理与范型》一书中有如下定义:“分布式系统是若干独立计算机的集合,这些计算机对于用户来说就像单个相关系统”;分布式系统是由一组通过网络进行通信、为了完成共同的任务而协调工作的计算机节点组成的系统。分布式系统的出现是为了用廉价的、普通的机器完成单个计算机无法完成的计算、存储任务。其目的是利用更多的机原创 2020-11-14 16:31:35 · 159 阅读 · 0 评论 -
SpringBoot16:异步、定时、邮件任务
文章目录前言异步任务定时任务邮件任务上一篇:SpringBoot15:集成Swagger前言在我们的工作中,常常会用到异步处理任务,比如我们在网站上发送邮件,后台会去发送邮件,此时前台会造成响应不动,直到邮件发送完毕,响应才会成功,所以我们一般会采用多线程的方式去处理这些任务。还有一些定时任务,比如需要在每天凌晨的时候,分析一次前一天的日志信息。还有就是邮件的发送,微信的前身也是邮件服务呢?这些东西都是怎么实现的呢?其实SpringBoot都给我们提供了对应的支持,我们上手使用十分的简单,只需要开启一原创 2020-11-13 22:46:13 · 273 阅读 · 0 评论 -
SpringBoot15:集成Swagger
文章目录项目集成Swagger上一篇:SpringBoot14:整合Shiro项目集成Swagger学习目标:了解Swagger的概念及作用掌握在项目中集成Swagger自动生成API文档Swagger简介前后端分离前端 -> 前端控制层、视图层后端 -> 后端控制层、服务层、数据访问层前后端通过API进行交互前后端相对独立且松耦合产生的问题前后端集成,前端或者后端无法做到“及时协商,尽早解决”,最终导致问题集中爆发解决方案转载 2020-11-13 20:35:16 · 182 阅读 · 0 评论 -
SpringBoot14:整合Shiro
文章目录概述简介Apache Shiro是一个强大且易用的Java安全框架可以完成身份验证、授权、密码和会话管理Shiro 不仅可以用在 JavaSE 环境中,也可以用在 JavaEE 环境中官网: http://shiro.apache.org/功能在这里插入图片描述Authentication:身份认证/登录,验证用户是不是拥有相应的身份;Authorization:授权,即权限验证,验证某个已认证的用户是否拥有某个权限;即判断用户是否能做事情,常见的如:验证某个用户是否拥有原创 2020-11-13 09:51:57 · 141 阅读 · 0 评论 -
SpringBoot13:集成SpringSecurity
文章目录安全简介实战测试认识SpringSecurity权限控制和注销rememberMe定制登录页SpringBoot12:整合MyBatis安全简介在 Web 开发中,安全一直是非常重要的一个方面。安全虽然属于应用的非功能性需求,但是应该在应用开发的初期就考虑进来。如果在应用开发的后期才考虑安全的问题,就可能陷入一个两难的境地:一方面,应用存在严重的安全漏洞,无法满足用户的要求,并可能造成用户的隐私数据被攻击者窃取;另一方面,应用的基本架构已经确定,要修复安全漏洞,可能需要对系统的架构做出比较重大原创 2020-11-12 15:48:10 · 191 阅读 · 0 评论 -
SpringBoot12:整合MyBatis
文章目录SpringBoot11:整合Druid原创 2020-11-11 23:04:36 · 185 阅读 · 0 评论 -
SpringBoot11:整合Druid
文章目录集成DruidSpringBoot10:整合JDBC集成DruidDruid简介Java程序很大一部分要操作数据库,为了提高性能操作数据库的时候,又不得不使用数据库连接池。Druid 是阿里巴巴开源平台上一个数据库连接池实现,结合了 C3P0、DBCP 等 DB 池的优点,同时加入了日志监控。Druid 可以很好的监控 DB 池连接和 SQL 的执行情况,天生就是针对监控而生的 DB 连接池。Druid已经在阿里巴巴部署了超过600个应用,经过一年多生产环境大规模部署的严苛考验。Sp原创 2020-11-11 23:01:45 · 149 阅读 · 0 评论 -
SpringBoot10:整合JDBC
文章目录SpringData简介整合JDBCSpringBoot09:员工管理系统(thymeleaf)SpringData简介对于数据访问层,无论是 SQL(关系型数据库) 还是 NOSQL(非关系型数据库),Spring Boot 底层都是采用 Spring Data 的方式进行统一处理。Spring Boot 底层都是采用 Spring Data 的方式进行统一处理各种数据库,Spring Data 也是 Spring 中与 Spring Boot、Spring Cloud 等齐名的知名项目。原创 2020-11-11 22:24:40 · 130 阅读 · 0 评论 -
SpringBoot09:员工管理系统(thymeleaf)
文章目录SpringBoot08:MVC自动配置原理原创 2020-11-11 20:49:51 · 278 阅读 · 0 评论 -
SpringBoot08:MVC自动配置原理
文章目录MVC自动配置原理上篇文章传送门MVC自动配置原理官网在进行项目编写前,我们还需要知道一个东西,就是SpringBoot对我们的SpringMVC还做了哪些配置,包括如何扩展,如何定制。只有把这些都搞清楚了,我们在之后使用才会更加得心应手。途径一:源码分析,途径二:官方文档!地址 :https://docs.spring.io/spring-boot/docs/2.2.5.RELEASE/reference/htmlsingle/#boot-features-spring-mvc-原创 2020-11-10 20:09:46 · 148 阅读 · 0 评论 -
SpringBoot07:Thymeleaf模板引擎
文章目录Thymeleaf测试上篇文章传送门Thymeleaf模板引擎前端交给我们的页面,是html页面。以前的开发,我们需要把html页面转成jsp页面,jsp好处就是当我们查出一些数据转发到jsp页面以后,jsp可以轻松实现数据的显示,及交互等。jsp支持非常强大的功能,包括能写Java代码,但是现在,SpringBoot这个项目首先是以jar的方式,不是war,并且,我们用的还是嵌入式的Tomcat,所以,现在默认是不支持jsp的。那不支持jsp,如果我们直接用纯静态页面的方式,那给我原创 2020-11-10 16:42:41 · 180 阅读 · 0 评论 -
SpringBoot06:Web开发静态资源处理
文章目录Web开发探究静态资源处理首页处理上篇文章传送门Web开发探究简介接下来,我们开始学习SpringBoot与Web开发,从这一章往后,就属于我们实战部分的内容了;其实SpringBoot的东西用起来非常简单,因为SpringBoot最大的特点就是自动装配。使用SpringBoot的步骤:创建一个SpringBoot应用,选择我们需要的模块,SpringBoot就会默认将我们的需要的模块自动配置好手动在配置文件中配置部分配置项目就可以运行起来了专注编写业务代码,不需要原创 2020-11-10 10:54:45 · 146 阅读 · 0 评论 -
SpringBoot05:自动配置原理
文章目录自动配置原理自动配置原理研究SpringBoot 2.2.0源码配置文件到底能写什么?怎么写?SpringBoot官方文档中有大量的配置,我们无法全部记住分析自动配置原理我们以HttpEncodingAutoConfiguration(Http编码自动配置)为例解释自动配置原理;//表示这是一个配置类,和以前编写的配置文件一样,也可以给容器中添加组件;@Configuration //启动指定类的ConfigurationProperties功能; //进入这个HttpP原创 2020-11-09 23:00:51 · 133 阅读 · 0 评论 -
SpringBoot04:JSR303数据校验及多环境切换
文章目录JSR303数据校验多环境切换JSR303数据校验如何使用Springboot中可以用@validated来校验数据,如果数据异常则会统一抛出异常,方便异常中心统一处理。我们这里来写个注解让我们的name只能支持Email格式;@Component //注册bean@ConfigurationProperties(prefix = "person")@Validated //数据校验public class Person { @Email(message="邮箱格式错误原创 2020-11-09 21:29:23 · 154 阅读 · 0 评论 -
SpringBoot03:yaml配置注入
文章目录yaml语法学习注入配置文件yaml语法学习配置文件SpringBoot使用一个全局的配置文件 , 配置文件名称是固定的application.properties语法结构 :key=valueapplication.yml语法结构 :key:空格 value配置文件的作用 :修改SpringBoot自动配置的默认值,因为SpringBoot在底层都给我们自动配置好了;比如我们可以在配置文件中修改Tomcat 默认启动的端口号!测试一下!server.po原创 2020-11-09 19:19:30 · 300 阅读 · 0 评论 -
SpringBoot02:运行原理
文章目录运行原理探究pom.xml启动器 spring-boot-starter主启动类SpringApplication运行原理探究我们之前写的HelloSpringBoot,到底是怎么运行的呢,Maven项目,我们一般从pom.xml文件探究起;pom.xml父依赖其中它主要是依赖一个父项目,主要是管理项目的资源过滤及插件!<parent> <groupId>org.springframework.boot</groupId> <原创 2020-11-09 16:47:25 · 178 阅读 · 0 评论 -
SpringBoot01:HelloWorld
文章目录SpringBoot简介Hello,WorldSpringBoot简介回顾什么是SpringSpring是一个开源框架,2003 年兴起的一个轻量级的Java 开发框架,作者:Rod JohnsonSpring是为了解决企业级应用开发的复杂性而创建的,简化开发。Spring是如何简化Java开发的为了降低Java开发的复杂性,Spring采用了以下4种关键策略:1、基于POJO的轻量级和最小侵入性编程,所有东西都是bean;2、通过IOC,依赖注入(DI)和面向接口实现松耦合原创 2020-11-09 11:11:36 · 188 阅读 · 0 评论 -
SpringMVC
文章目录1、回顾MVC1.1 什么是MVC1.2 Model1时代1.3 Model2时代1.4 回顾Servlet2、初识SpringMVC2.1 什么是SpringMVC1、回顾MVC1.1 什么是MVCMVC是模型(Model——dao,service)、视图(View——jsp)、控制器(Controller——servlet)的简写,是一种软件设计规范。是将业务逻辑、数据、显示分离的方法来组织代码。MVC主要作用是降低了视图与业务逻辑间的双向偶合。MVC不是一种设计模式,MVC是一种原创 2020-10-27 15:38:26 · 1356 阅读 · 3 评论 -
Java学习——配置文件模板汇总
文章目录JavaWeb——web.xml数据库——dp.properties数据库——c3p0-config.xml数据库——dbcpconfig.xmlMaven——pom.xmlMaven——target资源过滤MyBatis——mybatis-config.xmlSpring——applicationContext.xmlJavaWeb——web.xml<?xml version="1.0" encoding="UTF-8"?><web-app xmlns="http://xm原创 2020-10-21 23:03:41 · 459 阅读 · 1 评论 -
Java注解和反射
文章目录1.注解1.1 注解入门1.2 内置注解1.3 自定义注解,元注解2.反射2.1 Java反射机制概述2.2 理解Class类并获取Class实例2.3 类的加载与ClassLoader2.4 创建运行时类的对象2.5 获取运行时类的完整结构2.6 凋用运行时类的指定结构1.注解1.1 注解入门什么是注解?Annotation是从JDK5.0开始引入的新技术.Annotation的作用:不是程序本身,可以对程序作出解释.(这一点和注释(comment)没什么区别)可以被其他原创 2020-10-27 15:36:35 · 131 阅读 · 0 评论 -
GoF23
文章目录1. 设计模式概述1.1 什么是设计模式1.2 学习设计模式的意义1.3 设计模式的基本要素1.4 GoF232.OOP七大原则3.单例模式4.工厂模式5.抽象工厂模式6.建造者模式1. 设计模式概述1.1 什么是设计模式设计模式(Design Pattern)是前辈们对代码开发经验的总结,是解决特定问题的一系列套路。它不是语法规定,而是一套用来提高代码可复用性、可维护性、可读性、稳健性以及安全性的解决方案。1995年,GoF(Gang of Four,四人组/四人帮)合作出版了《设计模式:原创 2020-10-27 15:37:04 · 356 阅读 · 0 评论 -
Spring
文章目录1、Spring入门1.1 简介1.2 优点1.3 组成1.4 拓展2、IOC2.1 IOC理论推导1、Spring入门1.1 简介Spring:给软件行业带来了春天2002年,首次推出Spring框架雏形interface 21 框架Spring框架即以interface21框架为基础,经过重新设计,并不断丰富其内涵,于2004年3月24日,发布了1.0正式版。Rod Johnson,Spring Framework创始人Spring理念:使现有的技术更加容易使用,本身是一个大杂烩原创 2020-10-27 15:37:15 · 274 阅读 · 0 评论 -
Mybatis
文章目录1 简介1.1 什么是MyBatis1.2 持久层MyBatis环境JDK 1.8Mysql 5.7maven 3.6.1(本机3.6.3)IDEA回顾:JDBCMysqlJava基础MavenJunit框架:配置文件 --> 看官网文档1 简介1.1 什么是MyBatisMyBatis 是一款优秀的持久层框架。它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBati原创 2020-10-27 15:36:23 · 237 阅读 · 0 评论 -
JavaWeb
文章目录1 基本概念1.1 前言1.2 Web应用程序1.3 静态web1.4 动态web1 基本概念1.1 前言web开发:web,网页的意思,www.baidu.com静态webhtml, css提供给所有人看的数据始终不会发生变化动态web淘宝,几乎是所有的网站提供给所有人看的数据始终会发生变化,每个人在不同时间,不同地点看到的信息各不相同技术栈:Servlet/JSP, ASP, PHP在java中,动态web资源开发的技术统称为JavaWeb1.2 Web应用程序w原创 2020-10-27 15:36:08 · 696 阅读 · 0 评论 -
Java8学习笔记
文章目录转载 2020-10-27 15:35:44 · 133 阅读 · 0 评论