- 博客(36)
- 收藏
- 关注
原创 单例模式解析
这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。关键代码:构造函数是私有的。意图:保证一个类仅有一个实例,并提供一个访问它的全局访问点。主要解决:一个全局使用的类频繁地创建与销毁。何时使用:当您想控制实例数目,节省系统资源的时候。如何解决:判断系统是否已经有这个单例,如果有则返回,如果没有则创建。注意:1、单例类只能有一个实例。2、单例类必须自己创建自己的唯一实例。3、单例类必须给所有其他对象提供这一实例。...
2021-06-28 17:27:30
122
原创 Static,final 的变量和方法
应该尽量少用静态变量和静态方法,因为它们的生命周期与类同步,比较长,而普通的对象变量和对象方法的生命周期只限于对象通常情况下,类成员必须通过它的类的对象访问,但是可以创建这样一个成员,它能够被它自己使用,而不必引用特定的实例。在成员的声明前面加上关键字static(静态的)就能创建这样的成员。如果一个成员被声明为static,它就能够在它的类的任何对象创建之前被访问,而不必引用任何对象。你可以将方法和变量都声明为static。static 成员的最常见的例子是main( ) 。因为在程序开始执行时必须调
2021-06-17 11:35:45
643
原创 java类加载运行、
类加载机制JVM把class文件加载到内存,并对数据进行校验、解析和初始化,最终形成JVM可以直接使用的java类型的全过程。java的加载与运行Java程序的运行包括两非常重要的阶段-编译阶段-运行阶段Java Web项目运行流程...
2021-06-10 18:09:36
103
原创 用接口接受对象和用实现类接受对象的区别
// 用接口接受对象List list = new ArrayList();StudentService studentService = new StudentServiceImpl();// 用实现类接受对象ArrayList lis t= new ArrayList();StudentServiceImpl studentService = new StudentServiceImpl();————————————————版权声明:本文为CSDN博主「chenry777」的原创文章,遵循
2021-06-09 17:58:21
212
原创 【单向链表】节点实现、增删操作及实现图解
https://blog.csdn.net/Doggie_IT/article/details/88852619
2021-06-09 11:29:08
83
原创 bean,实例,对象 和class
bean其实就是实例对象.不过bean是spring中专属的概念(或者类似框架或容器)普通new出来的对象,叫对象。但是你把这个对象交给spring进行管理(通过component之类的),这样每次不用在代码里new了,它就变成bean了.实例是指内存中的一个类的具体个体有spring自动实例化,用完后自动销毁的对象。让我们只需要在用的时候使用对象就可以,不用考虑如果创建类对象(这就是spring的注入)。所有可以被spring容器实例化并管理的java类都可以称为bean。实例化就是创建对象
2021-05-27 18:33:09
1246
原创 Spring和Mybatis整合
https://blog.csdn.net/qq_42371269/article/details/83505269方法一: 通过 XXXMapper.xml 映射文件整合使用 SqlSession 进行操作public class SpringMybatisTest {/** 1. 创建spring容器 根据xml文件应用程序Context容器(上下文) classpath指配置文件的位置, 起点有java, resources. 写路径时相对这个起点去写* */
2021-05-27 18:06:21
63
原创 intellij idea 的全局搜索快捷键方法
1、Ctrl+N按名字搜索类相当于eclipse的ctrl+shift+R,输入类名可以定位到这个类文件,就像idea在其它的搜索部分的表现一样,搜索类名也能对你所要搜索的内容多个部分进行匹配,而且如果能匹配的自己写的类,优先匹配自己写的类,甚至不是自己写的类也能搜索。2、Ctrl+Shift+N按文件名搜索文件同搜索类类似,只不过可以匹配所有类型的文件了。3、Ctrl+H查看类的继承关系,例如HashMap的父类是AbstractMap,子类则有一大堆。4、Ctrl+Alt+B查看子类方法实现
2021-04-30 17:35:05
1078
1
原创 kafka
5.1 Kafka存储机制https://blog.csdn.net/beiisbei/article/details/105155785
2021-04-28 15:34:31
74
原创 spring注解bean对象的定义和Bean属性的依赖注入
bean对象的定义除了@Component外,Spring提供 了3个功能基本和@Component等效的注解 @Repository用于对DAO实现类进行标注 @Service用于对Service实现类进行标注 @Controller用于对Controller实现类进行标注Bean属性的依赖注入1. 简单数据类型依赖注入(了解)Spring3.0后,提供 @Value注解,可以完成简单数据的注入示例: @Repository("user") public class User {
2021-01-20 18:15:07
235
原创 事务
什么是事务事务是应用程序中一系列严密的操作,所有操作必须成功完成,否则在每个操作中所作的所有更改都会被撤消。也就是事务具有原子性,一个事务中的一系列的操作要么全部成功,要么一个都不做。事务的结束有两种,当事务中的所以Spring容器事务Hibernate事务...
2021-01-14 15:29:37
53
原创 JVM 和 操作系统
操作系统内存布局:那么jvm在操作系统中如何表示的呢?操作系统中的jvm操作系统+jvm的内存简单布局从上图中,你有没有发现什么规律,jvm的内存结构居然和操作系统的结构惊人的一致,你能不能给他们对号入座?还不能,没关系,再来看一个图,我帮你对号入座。看我下面红色的标注...
2021-01-12 16:37:20
158
原创 JVM
JVM全称(Java Virtual Machine,就是我们很耳熟的Java虚拟机。它能够识别.class后缀的文件,并且能够解析它的指令,最终调用操作系统上的函数,完成我们想要的操作。Java程序就不一样了,使用javac编译成.class文件之后,还需要使用Java命令去主动执行它,操作系统并不认识这些.class文件JVM:等同于操作系统;Java字节码:等同于汇编语言。JVM认为是一个翻译器,从开始运行的时候就会持续不断的翻译执行Java字节码,然后调用真正的操作系统函数,这些操作系统函
2021-01-12 16:30:16
66
原创 Java缓存
在系统架构的不同层级之间,为了加快访问速度,都可以存在缓存操作系统磁盘缓存->减少磁盘机械操作数据库缓存->减少文件系统I/O应用程序缓存->减少对数据库的查询Web服务器缓存->减少应用服务器请求客户端浏览器缓存->减少对网站的访问好处?效率高(因为不用建立jdbc连接等)降低了数据库的压力(不用每次请求都要去数据库查,数据库也会累啊)。缺点?从上述也看到了,有可能产生数据不一致的情况,清除缓存可解决。Redis概述完全开源免费、最受BSD协议、
2021-01-11 11:14:54
84
原创 SPRING BEAN的4种依赖注入方式
** 所谓依赖注入,其实就是给对象里的属性赋值,因为对象里有其他对象,因此就形成了依赖。Spring有4种方式来给属性赋值:** 1. 构造方法注入 2. set方法注入 3. 自动装配 4. 注解1. 构造方法注入构造方法注入是指在构造方法中注入属性或者对象来实现依赖注入,如下所示,在标签中定义一个id为userDaoImpl的Bean,并通过注入了name为username,value为admin的值,注入完成后直接通过this.username获取到值admin。其中引用类型
2021-01-08 16:41:03
400
原创 SOA架构 和 微服务
SOA架构即面向服务架构。 SOA全英文是Service-Oriented Architecture,中文意思是中文面向服务编程,是一种思想,一种方法论,一种分布式的服务架构 1.SOA(Service Oriented Architecture)“面向服务的架构”:他是一种设计方法,其中包含多个服务, 服务之间通过相互依赖最终提供一系列的功能。一个服务 通常以独立的形式存在与操作系统进程中。各个服务之间 通过网络调用。 2.微服务架构:其实和 SOA 架构类似,微服务是在 SOA 上做的升华,
2021-01-08 11:26:28
227
原创 Spring boot,Spring cloud 和 Spring data
SpringBoot只是对Spring快速配置的支持以敏捷式开发为目标的工具。SpringCloud是提供对微服务一套完成的解决方案。Spring Data的使命是为数据访问提供熟悉且一致的基于Spring的编程模型,同时仍保留底层数据存储的特殊特性。...
2021-01-08 11:00:13
240
原创 Spring 框架(Spring makes Java simple)
Spring 被称为 J2EE 的春天,是一个开源的轻量级的 Java 开发框架框架的目的就是帮助我们简化开发,Spring Web MVC也是要简化我们日常Web开发的。Spring是一个解决了许多在J2EE开发中常见的问题的强大框架。 Spring提供了管理业务对象的一致方法并且鼓励了注入对接口编程而不是对类编程的良好习惯。Spring的架构基础是基于使用JavaBean属性的Inversion of Control容器。 Spring是IOC和AOP的容器框架,SpringMVC是基于Sp.
2021-01-07 17:48:26
243
原创 Java线程池详解
使用线程池的原因:多线程运行时间,系统不断的启动和关闭新线程,成本非常高,会过渡消耗系统资源,以及过渡切换线程的危险,从而可能导致系统资源的崩溃。这时,线程池就是最好的选择了。线程池流程线程池流程1、判断核心线程池是否已满,没满则创建一个新的工作线程来执行任务。已满则。2、判断任务队列是否已满,没满则将新提交的任务添加在工作队列,已满则。3、判断整个线程池是否已满,没满则创建一个新的工作线程来执行任务,已满则执行饱和策略。 (1、判断线程池中当前线程数是否大于核心线程数,如果小于,在创建一个
2021-01-06 18:02:15
106
原创 高并发与多线程关系与区别
高并发与多线程关系与区别一、什么是高并发 高并发(High Concurrency)是一种系统运行过程中遇到的一种“短时间内遇到大量操作请求”的情况,主要发生在web系统集中大量访问收到大量请求(例如:12306的抢票情况;天猫双十一活动)。该情况的发生会导致系统在这段时间内执行大量操作,例如对资源的请求、数据库的操作等。二、高并发的处理指标高并发相关常用的一些指标有:响应时间、吞吐量、每秒查询率QPS、并发用户数1、响应时间(Response Time)响应时间:系统对请...
2021-01-05 17:39:26
128
原创 多线程和高并发
“高并发和多线程”总是被一起提起,给人感觉两者好像相等,实则 高并发 ≠ 多线程多线程是完成任务的一种方法,高并发是系统运行的一种状态,通过多线程有助于系统承受高并发状态的实现。高并发是一种系统运行过程中遇到的一种“短时间内遇到大量操作请求”的情况,主要发生在web系统集中大量访问或者socket端口集中性收到大量请求(例如:12306的抢票情况;天猫双十一活动)。该情况的发生会导致系统在这段时间内执行大量操作,例如对资源的请求,数据库的操作等。如果高并发处理不好,不仅仅降低了用户的体验度(请求响应时间
2021-01-05 17:28:17
57
原创 Scrum 计划、站会、评审、回顾会议介绍
计划会议(Planning Meeting)参与者:整个团队,包括产品(Product Owner)、Scurm Master、Scrum Team(开发、QA)目的:Product Owner从ProductBacklog中梳理出这期Sprint需要完成的Backlog,并与团队成员达成共识。注意区分userstory和backlog的区别,userstory可以是任何一个需求、想法,未经过评审,而backlog是经过团队评审确认的需求,可以放到后续的版本中进行迭代开发的。每日站会(Daily
2020-09-21 16:39:03
2919
原创 日期转换 String,Date,Long
我们经常的一个需求就是把String类型的字符串转化成日期或者时间,同时,我们也需要把日期和时间转变成String字符串用于显示String->Datepublic static final String DATE_FORMAT_YYYY_MM_DD_HH_MM_SS = "yyyy-MM-dd HH:mm:ss"; DateTimeFormatter dateTimeFormatter =DateTimeFormatter.ofPattern(format);(1) LocalD
2020-09-17 17:25:01
461
3
原创 Java 8 Lambda 表达式
lambda 表达式的语法格式如下:(parameters) -> expression或(parameters) ->{statements; }以下是lambda表达式的重要特征: **可选类型声明:不需要声明参数类型,编译器可以统一识别参数值; 可选的参数圆括号:一个参数无需定义圆括号,但多个参数需要定义圆括号; 可选的大括号:如果主体包含了一个语句,就不需要使用大括号; 可选的返回关键字:如果主体只有一个表达式返回值则编译器会自动返回值,大括号需要指定
2020-09-17 16:38:20
62
原创 java8 -flatMap
package java8;import java.util.ArrayList;import java.util.Arrays;import java.util.List;import java.util.stream.Collectors;public class FlatMap { public static void main(String[] args) { List<String> teamIndia = Arrays.asList("Virat
2020-09-17 16:18:46
169
原创 java8 -Stream
```bashpackage java8;import java.util.Arrays;import java.util.List;import java.util.Map;import java.util.function.Function;import java.util.stream.Collectors;public class Stream { public static void main(String[] args) { List<Stri..
2020-09-17 11:33:37
61
原创 构造函数
默认无参构造方法是在你没有定义构造方法时系统默认的,如果自己定义了,当然就使用用户自定义的了。如果在编程过程中需要用到无参构造方法,你可以在定义了构造方法时在定义一个无参数的;//泛型类public class Apple<T>{ private T info2; private T info; /** 没有无参的构造函数,默认使用用户自己定义的 */ **Apple(T info){ this.info = info;
2020-09-16 18:19:32
69
原创 Java输入/输出(I/O)流
Java 的 I/O(输入/输出)技术可以将数据保存到文本文件和二进制文件中, 以达到永久保存数据的要求。输入流Java 流相关的类都封装在 java.io 包中,而且每个数据流都是一个对象。所有输入流类都是 InputStream 抽象类(字节输入流)和 Reader 抽象类(字符输入流)的子类。其中 InputStream 类是字节输入流的抽象类,是所有字节输入流的父类,其层次结构如图 3 所示。输出流在 Java 中所有输出流类都是 OutputStream 抽象类(字节输出流)和 Writ
2020-09-16 11:27:20
149
原创 编译期和运行期--java 反射机制
编译期是指把源码交给编译器编译成计算机可以执行的文件的过程。在 Java 中也就是把 Java 代码编成 class 文件的过程。编译期只是做了一些翻译功能,并没有把代码放在内存中运行起来,而只是把代码当成文本进行操作,比如检查错误。运行期是把编译后的文件交给计算机执行,直到程序运行结束。所谓运行期就把在磁盘中的代码放到内存中执行起来。Java 反射机制在服务器程序和中间件程序中得到了广泛运用。在服务器端,往往需要根据客户的请求,动态调用某一个对象的特定方法。此外,在 ORM 中间件的实现中,运用 Ja
2020-09-16 10:55:22
920
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人