自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(66)
  • 收藏
  • 关注

原创 【Spring】Spring的循环依赖问题

1. Spring bean 的生命周期1. java 对象和 spring bean 的区别java对象:只要被实例化的类,在堆上分配了内存spring bean: 是经过了完整的生命周期,存在于spring容器中的对象2. spring bean 生命周期流程* 1. 实例化spring容器* 2. 扫描符合spring bean规则的类,放到一个集合中* 3. 遍历集合中的类 ==> 封装成一个beanDefinition对象,生成 beanDefi...

2021-04-29 11:27:25 130

原创 【并发编程JUC】 synchronized 简谈

1. 线程状态转换java并发编程状态基础,和锁没什么关系,但是很重要,就放这里吧。2. synchronized 关键字2.1 通过 ReentrantLock 查看锁的代码层原理因为synchronized底层是由c/c++来实现的,不容易查看,所以先用 reentrantLock来看看锁住一个对象的时候究竟是怎样实现线程互斥的。 ReentrantLock lock = new ReentrantLock();lock.lock();// 业务代码Thread.sle

2020-12-28 20:50:32 140

原创 【Spring】 AOP简谈

【Spring】 AOP简谈一、代理模式在说AOP之前,首先绕个弯路去谈一谈代理模式。代理模式分为静态代理和动态代理,网上经常用租房子这件事来形象化代理模式这件事,这里也画一个简单的关系图。角色分析:抽象角色:共同完成的一件事,比如租房这件事,一般使用接口和抽象类来解决真实角色:被代理的角色,一般是个具体的类代理角色:代理真实角色,但是一般代理角色代理真实角色后,会增加一些附属操作客户(租客):访问代理角色的人1、静态代理代码实例:// 抽象角色 ==> 租房的行为pu

2020-07-31 11:47:39 167

转载 java 泛型中的上界(extend)和下界(super)

1. 泛型中上界和下界的定义上界 <? extends Fruit>下界 <? super Apple>2.上界和下界的特点上界的list只能get,不能add(确切地说不能add出除null之外的对象,包括Object)下界的list只能add,不能getimport java.util.ArrayList;import java.util.Li...

2020-03-28 15:49:43 676 1

转载 angular innerHtml用法以及内容增加样式

1. 作用:在页面中显示html文本(1) htmlStr = "<div>&lt;a&ensp;href=\"https://www.baidu.com/\"&gt;&lt;/a&gt;</div>"<div [innerHtml]="htmlStr"></div> 显示:<...

2019-11-28 21:20:06 2095

原创 Angular生命周期钩子

1. 生命周期钩子的调用顺序constructor -> ngOnchanges -> ngOnInit -> ngDoCheck-> ngAfterContentInit -> ngAfterContentChecked -> ngAfterViewInit -> ngAfterViewChecked -> ngOnDestory前四个...

2019-04-30 16:59:19 1168

原创 java 8 流的简单记录

// 多条件组合排序:List<Human> humans = Lists.newArrayList( new Human("Sarah", 12), new Human("Sarah", 10), new Human("Zack", 12));humans.sort(Comparator.comparing(Human::getName).thenCompari...

2019-04-29 20:34:48 121

转载 Java中HashMap,LinkedHashMap,TreeMap的区别

java为数据结构中的映射定义了一个接口java.util.Map;它有四个实现类,分别是HashMap Hashtable LinkedHashMap 和TreeMapMap主要用于存储健值对,根据键得到值,因此不允许键重复(重复了覆盖了),但允许值重复。Hashmap 是一个最常用的Map,它根据键的HashCode 值存储数据,根据键可以直接获取它的值,具有很快的访问速度,遍历时,取得数...

2019-04-29 19:54:27 85

转载 Java多线程学习(吐血超详细总结)

https://blog.csdn.net/Evankaka/article/details/44153709

2018-12-14 17:32:02 139

转载 springboot打成jar包后配置外部资源映射成静态资源

原文:https://blog.csdn.net/duangecho/article/details/80258300 很多的项目都要上传图片那些,然后通过打包jar包或者war包发布到服务器上,我们不可能把上传图片的文件夹放在jar包或者war包里面,那样会越来越大。所以有了下面的配置,其他框架都好说可以把文件放在tomact下,但是springboot项目是内置tomact所以会有一点...

2018-11-14 17:53:35 2420

转载 数据库索引的实现原理

说白了,索引问题就是一个查找问题。。。 数据库索引,是数据库管理系统中一个排序的数据结构,以协助快速查询、更新数据库表中数据。索引的实现通常使用B树及其变种B+树。在数据之外,数据库系统还维护着满足特定查找算法的数据结构,这些数据结构以某种方式引用(指向)数据,这样就可以在这些数据结构上实现高级查找算法。这种数据结构,就是索引。为表设置索引要付出代价的:一是增加了数据库的存储空间,...

2018-09-06 08:58:36 129

原创 Java异常捕获之try-catch-finally-return的执行顺序

情况1:try块中没有抛出异常try和finally块中都有return语句public static int NoException(){ int i=10; try{ System.out.println("i in try block is"+i); return --i; }catch(Exception e){ ...

2018-08-07 19:21:07 203

转载 java多态的一个例子

public class A { public String show(D obj) { return ("A and D"); } public String show(A obj) { return ("A and A"); } }public class B extends A{ public String ...

2018-08-02 21:20:05 2271

转载 Java valueOf() 方法

valueOf() 方法用于返回给定参数的原生 Number 对象值,参数可以是原生数据类型, String等。该方法是静态方法。该方法可以接收两个参数一个是字符串,一个是基数。语法该方法有以下几种语法格式:static Integer valueOf(int i)static Integer valueOf(String s)static Integer valueOf(S...

2018-07-27 16:39:27 2517

转载 JAVA正则表达式:Pattern类与Matcher类详解

java.util.regex是一个用正则表达式所订制的模式来对字符串进行匹配工作的类库包。它包括两个类:Pattern和Matcher Pattern 一个Pattern是一个正则表达式经编译后的表现模式。 Matcher 一个Matcher对象是一个状态机器,它依据Pattern对象做为匹配模式对字符串展开匹配检查。 首先一个Pattern实例订制了一个所用语法与PERL的类似的正则表达式经编...

2018-07-26 20:25:39 150 1

转载 Java 8 Lambda 表达式及 Stream 在集合中的用法

简介虽然 Java 8 已经发布有一段时间了,但是关于 Java 8 中的 Lambda 表达式最近才开始系统的学习,刚开始就被 Stream 的各种骚操作深深的吸引住了,简直漂亮的不像 Java。我认为每一个用 Java 的都应该深入的学习一下,不仅可以写出漂亮的代码,更可以对代码进行更深层次的抽象。StreamJava 8 中新新增了 Stream(流) 类来简化集合类的使用,St...

2018-07-26 14:13:05 317 1

转载 Java 8系列之Stream中万能的reduce

reduce 操作可以实现从Stream中生成一个值,其生成的值不是随意的,而是根据指定的计算模型。比如,之前提到count、min和max方 法,因为常用而被纳入标准库中。事实上,这些方法都是reduce操作。reduce方法有三个override的方法:Optional&lt;T&gt; reduce(BinaryOperator&lt;T&gt; accumulator); T ...

2018-07-26 12:37:34 313

转载 Eclipse 的快捷键以及文档注释、多行注释的快捷键

原文地址:http://my.oschina.net/u/590763/blog/70166其实快捷键可以自己设定:eclipse&gt;&gt;&gt;window&gt;&gt;&gt;preferences&gt;&gt;&gt;keysAlt + / 内容提示很常用的Ctrl + 1 快速修复Alt + 方向键 跟踪时向前向后退回前进Ctrl + Alt + 向下键快速复制行...

2018-07-25 09:50:21 169

转载 深入理解Java中的final关键字

Java中的final关键字非常重要,它可以应用于类、方法以及变量。这篇文章中我将带你看看什么是final关键字?将变量,方法和类声明为final代表了什么?使用final的好处是什么?最后也有一些使用final关键字的实例。final经常和static一起使用来声明常量,你也会看到final是如何改善应用性能的。final关键字的含义?final在Java中是一个保留的关键字,可以声明成...

2018-07-24 15:38:12 131

转载 Java中如何遍历Map对象的4种方法

在java中遍历Map有不少的方法。我们看一下最常用的方法及其优缺点。既然java中的所有map都实现了Map接口,以下方法适用于任何map实现(HashMap, TreeMap, LinkedHashMap, Hashtable, 等等) 方法一 在for-each循环中使用entries来遍历这是最常见的并且在大多数情况下也是最可取的遍历方式。在键值都需要时使用。Map&...

2018-07-24 15:00:13 444

转载 彻头彻尾理解 HashMap

原文:Map 综述(一):彻头彻尾理解 HashMaphttps://blog.csdn.net/justloveyou_/article/details/62893086 摘要:  HashMap是Map族中最为常用的一种,也是 Java Collection Framework 的重要成员。本文首先给出了 HashMap 的实质并概述了其与 Map、HashSet 的关系,紧接...

2018-07-24 14:34:04 167

转载 Java - 集合框架完全解析

数据结构是以某种形式将数据组织在一起的集合,它不仅存储数据,还支持访问和处理数据的操作。Java提供了几个能有效地组织和操作数据的数据结构,这些数据结构通常称为Java集合框架。在平常的学习开发中,灵活熟练地使用这些集合框架,可以很明显地提高我们的开发效率,当然仅仅会用还是不够的,理解其中的设计思想与原理才能更好地提高我们的开发水平。下面是自己对Java集合框架方面的学习总结。一、概述二、...

2018-07-24 10:41:52 77

转载 Java StringBuffer 和 StringBuilder 类

当对字符串进行修改的时候,需要使用 StringBuffer 和 StringBuilder 类。和 String 类不同的是,StringBuffer 和 StringBuilder 类的对象能够被多次的修改,并且不产生新的未使用对象。StringBuilder 类在 Java 5 中被提出,它和 StringBuffer 之间的最大不同在于 StringBuilder 的方法不是线程安...

2018-07-24 10:03:49 83

转载 秒懂,Java 注解 (Annotation)你可以这样学

  这处图片引自老罗的博客。为了避免不必要的麻烦,首先声明我个人比较尊敬老罗的。至于为什么放这张图,自然是为本篇博文服务,接下来我自会说明。好了,可以开始今天的博文了。Annotation 中文译过来就是注解、标释的意思,在 Java 中注解是一个很重要的知识点,但经常还是有点让新手不容易理解。我个人认为,比较糟糕的技术文档主要特征之一就是:用专业名词来介绍专业名词。比如:...

2018-07-23 14:51:52 103

转载 Java中接口(Interface)的定义和使用

有关 Java 中接口的使用相信程序员们都知道,但是你们知不知道接口到底有什么用呢?毫无疑问,接口的重要性远比想象中重要。接下来我们便一起来学习Java中接口使用。Java接口是什么Java接口是一系列方法的声明,是一些方法特征的集合,一个接口只有方法的特征没有方法的实现,因此这些方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的行为(功能)。 接口(英语:Interface)...

2018-07-23 11:28:55 464

转载 Java中this和super的用法总结

thisthis是自身的一个对象,代表对象本身,可以理解为:指向对象本身的一个指针。this的用法在java中大体可以分为3种:1.普通的直接引用这种就不用讲了,this相当于是指向当前对象本身。2.形参与成员名字重名,用this来区分: 1 2 3 4 5 6 7 8 9 10 11...

2018-07-21 15:38:02 80

转载 工具篇---Chrome浏览器快捷键

Windows 和 Linux版本的chrome标签页和窗口快捷键操作 快捷键 打开新窗口 Ctrl + n 在隐身模式下打开新窗口 Ctrl + Shift + n 打开新的标签页,并跳转到该标签页 Ctrl + t 重新打开最后关闭的标签页,并跳转到该标签页 Ctrl + Shift + t 跳转到下一个打开的标签页 Ctrl +...

2018-07-21 15:34:40 1316 1

转载 Java this 关键字用法

构造方法中的this关键字构造方法是一个类的对象在通过new关键字创建时自动调用的,在程序中不能向调用其他方法一样通过方法名(也就是类名)来调用。但如果一个类有多个构造方法,可以在一个构造方法中通过this(paras…)来调用其他的构造方法。 使用this来调用其他构造方法有如下几个约束。 1) 只能在构造方法中通过this来调用其他构造方法,普通方法中不能使用。 2) 不能通过thi...

2018-07-18 14:20:36 159 1

转载 HTTP与HTTPS的区别

超文本传输协议HTTP协议被用于在Web浏览器和网站服务器之间传递信息,HTTP协议以明文方式发送内容,不提供任何方式的数据加密,如果攻击者截取了Web浏览器和网站服务器之间的传输报文,就可以直接读懂其中的信息,因此,HTTP协议不适合传输一些敏感信息,比如:信用卡号、密码等支付信息。  为了解决HTTP协议的这一缺陷,需要使用另一种协议:安全套接字层超文本传输协议HTTPS,为了数据传输的安

2017-10-11 09:57:28 199

转载 深度探索C++对象模型

20170514_深度探索C++对象模型尊重知识产权:转自:http://www.cnblogs.com/tgycoder/p/5426628.html   和   http://www.cnblogs.com/skynet/p/3343726.html何为C++对象模型?C++对象模型可以概括为以下2部分:1、语言中直接支持面向对象程序设计的部分;2、对于

2017-09-26 14:08:52 294

原创 条件变量的虚假唤醒(spurious wakeups)问题

引言条件变量是我们常用的同步原语之一,它的正确使用方式一般如下图:在wait端,我们必须把判断布尔条件和wait()放到while循环中,而不能用if语句,原因是可能会引起虚假唤醒。 那么,究竟什么是虚假唤醒,导致虚假唤醒的原因又是什么呢?什么是虚假唤醒?举个例子,我们现在有一个生产者-消费者队列和三个线程。1) 1号线程从队列中获取了一个元素,此时队列变为空。2)

2017-09-19 15:57:59 690

转载 std::shared_ptr 和 std::weak_ptr的用法以及引用计数的循环引用问题

在std::shared_ptr被引入之前,C++标准库中实现的用于管理资源的智能指针只有std::auto_ptr一个而已。std::auto_ptr的作用非常有限,因为它存在被管理资源的所有权转移问题。这导致多个std::auto_ptr类型的局部变量不能共享同一个资源,这个问题是非常严重的哦。因为,我个人觉得,智能指针内存管理要解决的根本问题是:一个堆对象(或则资源,比如文件句柄)在被多个对

2017-09-18 14:56:14 439

原创 C++三大特性

封装性:隐藏实现细节,使得代码模块化,实现代码重用。继承性:可以扩展存在的代码模块(类)。达到代码重用的目的,避免代码重复。多态性:为了接口重用。也就是,不论传递过来的究竟是哪个类的对象,函数都能够通过同一个接口调用到适应各自对象的方法。

2017-09-13 10:06:59 231

转载 百度笔试题:malloc/free与new/delete的区别

相同点:都可用于申请动态内存和释放内存不同点:(1)操作对象有所不同。malloc与free是C++/C 语言的标准库函数,new/delete 是C++的运算符。对于非内部数据类的对象而言,光用maloc/free 无法满足动态对象的要求。对象在创建的同时要自动执行构造函数, 对象消亡之前要自动执行析构函数。由于malloc/free 是库函数而不是运算符,不在编译器控制权限之内,不

2017-09-12 22:39:01 250

转载 listen()函数中backlog参数分析

背景知识Unix网络编程描述如下:总结0. accept()函数不参与三次握手,而只负责从已建立连接队列中取出一个连接和sockfd进行绑定;1. backlog参数决定了未完成队列和已完成队列中连接数目之和的最大值(从内核角度看,是否这个和就是等于sock->recv_queue ?);2. accept()函数调用,会从已连接队列中取出一个“连接”(可以是一

2017-09-11 21:59:51 178

转载 Linux下的I/O复用与epoll详解

转自:http://www.cnblogs.com/lojunren/p/3856290.html前言      I/O多路复用有很多种实现。在linux上,2.4内核前主要是select和poll,自Linux 2.6内核正式引入epoll以来,epoll已经成为了目前实现高性能网络服务器的必备技术。尽管他们的使用方法不尽相同,但是本质上却没有什么区别。本文将重点探讨将放在E

2017-08-18 11:21:48 204

转载 5种服务器网络编程模型讲解

1.同步阻塞迭代模型同步阻塞迭代模型是最简单的一种IO模型。其核心代码如下:12345678bind(srvfd);listen(srvfd);for(;;){    clifd = accept(srvfd,...); //开始接受客户端来的连接    read(clifd,buf,...);       //从客户端读取数据    dosomthingonbuf(buf);

2017-08-15 19:06:36 250

转载 sem_init sem_post sem_destroy信号量介绍

信号量的数据类型为结构sem_t,它本质上是一个长整型的数。函数sem_init()用来初始化一个信号量。它的原型为:  extern int sem_init __P ((sem_t *__sem, int __pshared, unsigned int __value));  sem为指向信号量结构的一个指针;pshared不为0时此信号量在进程间共享,否则只能为当前进程的所有

2017-08-15 15:55:08 290

转载 linux网络编程常用头文件

sys/types.h:数据类型定义sys/socket.h:提供socket函数及数据结构netinet/in.h:定义数据结构sockaddr_inarpa/inet.h:提供IP地址转换函数netdb.h:提供设置及获取域名的函数sys/ioctl.h:提供对I/O控制的函数sys/poll.h:提供socket等待测试机制的函数其他在网络程序中常见的头文件

2017-08-15 11:11:29 392

转载 Linux 的 splice 和sendfile系统调用

Linux内核有zero copy的函数。nginx和proftpd中用到sendfile(文件到socket),haproxy则用到slice(socket到socket),比较下来,haproxy仍然需要调用两次system call(与read,write一样),在网上没有找到相关的性能测试,如果有提高,估计是少了系统空间和用户空间的拷贝。原文:http://hi.baidu.com

2017-08-07 15:03:24 609

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除