自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 spring之控制反转、依赖注入

一、控制反转(Ioc—Inversion of Control)理解:IOC是一种设计思想,不是像原来一样在你的对象内部直接控制,而是将你设计好的对象交给容器控制。控制反转,我们从字面意思来看,控制,谁控制谁,控制什么;反转,什么是反转,如何反转!谁控制谁,控制什么:在传统Java SE程序设计时,我们直接在对象内部通过new进行创建对象,是程序主动去创建依赖对象;而IOC则是专门有一个容器...

2019-08-06 09:48:34 148

原创 @Autowired和@Resource的区别?

一:共同点在使用注解的方法注入bean时,@Resource和@Autowired都可以作为注入属性的修饰,注解的位置可以是容器类中的属性,也可以是其中的setter方法。在接口仅有单一实现类时,两个注解的修饰效果相同,可以互相替换,不影响使用。例如:1、容器类中的属性@Servicepublic class UserController { //@Resource @Aut...

2019-08-04 10:15:21 210

转载 2019年最新Java面试题及答案整理(上)

转载自:https://blog.csdn.net/qq_41701956/article/details/86686492 ...

2019-07-30 18:16:46 218

转载 2019年最新Java面试题及答案整理(下)

转载自:https://blog.csdn.net/qq_41701956/article/details/86699263 ...

2019-07-30 18:14:35 383

原创 什么时候用断言(assert)?

断言是一个包含 布尔表达式的语句,在执行这个语句的时候,假定该表达式为true ,如果表达式计算为false,系统就会抛出一个 java.lang.AssertionError 异常中断当前方法并执行冒号后的表达式;如 assert (a>0);//throw an AssertionError if a<=0;断言的两种形式:assert Expression1;asser...

2019-07-30 18:06:15 471

转载 java集合框架

 java集合框架图    简化图:   Java平台提供了一个全新的集合框架。“集合框架”主要由一组用来操作对象的...

2019-07-30 10:21:32 75

原创 java反射机制

什么是 java 的反射机制?在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法,对于任意一个对象,都能够调用他 的任意一个方法和属性,种种动态获取的信息以及动态调用对象的方法的功能称为 java 语言的反射机制。Java 有个 Object 类,是所有 java 类的继承根源,其声明了多个可以在所有 java 类中被改写的方法,其中就有 getClass 方法,该方法返回一个 C...

2019-07-24 16:22:14 64

原创 jsp 会话跟踪技术

一、什么是会话了解什么是会话跟踪技术之前我们首先要知道会话到底是什么:会话是指一个终端用户(服务器)与交互系统(客户端)进行通讯的过程。而什么又是会话跟踪?对同一个用户对服务器的连续的请求和接受响应的监视。(将用户与同一用户发出的不同请求之间关联,为了数据共享),这就是会话跟踪。我们为什么要对会话进行跟踪呢?这是因为浏览器与服务器之间的通信是通过HTTP协议进行通信的,而HTTP协议是...

2019-07-22 11:09:28 218

原创 servlet的forward和redirect有什么区别?

forward和redirect是什么?是servlet种的两种主要的跳转方式。forward又叫转发,redirect叫做重定向。forward是服务器内部的重定向,服务器直接访问目标地址的URL,把那个URL的响应内容读取出来,而客户端并不知道,因此在客户端浏览器的地址栏里不会显示跳转后的地址,还是原来的地址。由于在整个定向的过程中用的是同一个Request,因此FORWARD会将Requ...

2019-07-22 10:38:11 238

原创 Jsp是什么?Jsp和servlet有什么异同?

jsp概念:每一种技术的名称都一定说明了它的作用。jsp的全称为:java server pages(java服务器页面),既然它是java的服务器页面,那么它肯定支持java的代码编写的web页面(.jsp后缀结尾的html文件)。jsp在<%, %>中编写java代码既然它是java的服务器页面,那它就基于sun的JDK来执行,也就是说jsp文件是java文件的某种伪格式。 j...

2019-07-22 10:16:00 291

原创 Servlet是什么以及它的生命周期?

Servlet简介:Servlet是运行在服务器端,是由Web服务器负责加载的,是独立于平台和协议的Java应用程序。Servlet并不限制所使用的协议,但是使用最多的协议是HTTP协议。Servlet的生命周期Servlet的生命周期指的是 Servlet从被Web服务器加载到它被销毁的整个生命过程。servlet 运行在servlet容器中,由容器来管理其生命周期。servlet生命...

2019-07-21 10:35:19 679

原创 HTTP页面的请求流程

HTTP的中文意思超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议。所有的WWW文件都必须遵守这个标准。http协议的流程:(1)打开浏览器,输入网址 http://www.baidu.com。(2)DNS域名解析器通过解析协议解析http://www.baidu.com 该网址,得到IP地址以及端口号。(3)然后通过...

2019-07-21 10:11:31 237

原创 HTTP的Get和Post请求有什么区别?

1、get 是从服务器上获取数据,post 是向服务器传送数据。get 请求返回 request - URI 所指出的任意信息。get没有请求体 post有请求体 :Post 请求用来发送电子邮件、新闻或发送能由交互用户填写的表格。这是唯一需要在请求中发送body的请求。使用Post请求时需要在报文首部 Content - Length 字段中指出body的长度。2、get把能够确定它所...

2019-07-21 10:01:07 183

原创 cookie&session

前言:会话(Session)跟踪是Web程序中常用的技术,用来跟踪用户的整个会话。常用的会话跟踪技术是Cookie与Session。Cookie通过在客户端记录信息确定用户身份,Session通过在服务器端记录信息确定用户身份。一:COOKIE在程序中,会话跟踪是是十分重要的。理论上来说,一个用户的所有请求操作都应该属于同一个会话,而另一个用户的所有请求操作则应该属于另一个会话,二者不能混淆。...

2019-07-21 09:48:35 71

原创 Java代理模式

1.java反射机制理解代理模式的前提是先理解java中的反射机制,先看一个例子:JDBC加载驱动时,Class.forName(“com.mysql.jdbc.Driver”); 此时通过反射加载连接mysql数据库的jar包,该句等价于import com.mysql.jdbc.Driver; 可是为什么不直接导入呢?这就是反射设计的合理之处了。(1)用反射可以在运行时动态导入,直接导...

2019-07-20 18:00:44 79

原创 request&response

请求响应的流程图tomcat服务器响应客户请求过程:当一个请求发送过来的时候,浏览器直接连接tomcat ,tomcat里面有一个servlet容器。判断是否是第一次请求 ,如果是的话,会先new一个servlet实例,然后发送相应的请求:服务器会把客户端的请求数据封装到request对象中,request就是请求数据的载体!服务器还会创建response对象,这个对象与客户端连接在一起,它...

2019-07-20 17:43:31 109

原创 java设计模式4 观察者模式

概念:观察者模式(又被称为发布-订阅(Publish/Subscribe)模式,属于行为型模式的一种,它定义了一种对象间一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态变化时,会通知所有的观察者对象,使他们能够自动更新自己。观察者模式结构图:需求分析:在软件系统中经常会有这样的需求:如果一个对象的状态发生改变,某些与它相关的对象也要随之做出相应的变化。比如,...

2019-07-20 10:47:56 86

原创 java设计模式3 工厂模式

概念:工厂模式是设计模式中比较简单的一个设计模式,但在很多地方都用到了工厂模式,(如解析xml中,jdbc连接数据库等)利用好工厂模式对程序的设计很有用处。工厂模式根据抽象程度的不同分为简单工厂模式,工厂方法模式和抽象工厂模式三类。但也有把工厂方法模式划分到抽象工厂模式的,认为工厂方法模式是抽象工厂模式的特例的一种,就是只有一个要实现的产品接口。优势:1、可以使代码结构清晰,有效地封装变...

2019-07-20 10:23:18 87

原创 java设计模式2 迭代器模式

迭代器模式**定义:**提供一种方法访问一个容器对象中各个元素,而又不暴露该对象的内部细节。属于行为类模式。迭代器就是为了对集合类,或者聚合类进行循环遍历。但是平时我们都是存储了集合并且还要进行遍历。这不符合设计模式中的单一职责的设计原则。在软件模式中的聚合对象一般有两个功能,一个就是进行基本的存储元素。另一个功能就是对元素进行遍历。把第二个功能抽离出来,做诶一个专门的方法来使用,这就是迭代器...

2019-07-19 11:20:35 72

原创 java设计模式(1) 单例模式

单例模式(Singleton Pattern)一:概念:确保一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。是创建类模式。要点:1、私有的构造方法,且单例类只能有一个实例这是最基本的,真正做到整个系统中唯一并不容易,通常还要考虑反射破坏、序列化/反序列化、对象垃圾回收等问题。2、单例类必须自己创建自己的唯一实例,即为指向自己实例的私有静态引用。3、单例类必须给所有其他对...

2019-07-19 10:46:20 90

原创 浅谈jdbc

一:jdbc的链接过程1、加载类库(驱动jar包)到JVMmysql-connector-java 5:com.mysql.jdbc.Drivermysql-connector-java 6以上 :com.mysql.cj.jdbc.DriverClass.forName("com.mysql.cj.jdbc.Driver");2、加载驱动建立连接(1)useUnicode=tru...

2019-07-18 10:15:56 94

原创 强引用、软引用、弱引用和虚引用的区别

1、强引用(StrongReference)最普遍的一种引用方式,如String s = “abc”,变量s就是字符串“abc”的强引用,只要强引用存在,则垃圾回收器就不会回收这个对象。2、软引用(SoftReference)用于描述还有用但非必须的对象,如果内存足够,不回收,如果内存不足,则回收。一般用于实现内存敏感的高速缓存,软引用可以和引用队列ReferenceQueue联合使用,如果...

2019-06-28 14:48:54 9102

原创 什么是死锁(Deadlock)?如何定位死锁?

死锁是指两个或者两个以上的进程(线程)在执行过程中,由于竞争资源而造成的阻塞问题,若无外力作用下,他们将无法推进下去。此时系统称为死锁状态实际定位死锁问题的思路:1.首先需要确定java进程是否发生死锁。2.打开jvisualvm工具,专门分析JVMCPU,内存使用情况,以及线程的运行信息查看当前java进程各个线程运行的状态(颜色)。3.通过jvisualvm的线程dump或者jstac...

2019-06-28 14:46:40 1284

原创 标记-清除短发、复制算法、标记-整理算法、分代回收算法

标记/清除算法:分为“标记”和“清除”两个阶段:标记阶段:标记的过程使用可达性分析算法的过程,遍历所有的 GC Roots 对象,对从 GCRoots对象可达的对象都打上一个标识,将其记录为可达对象;清除阶段:清除的过程是对堆内存进行遍历,如果发现某个对象没有被标记为可达对象(通过读取对象header 信息),则将其回收。复制算法:复制算法的原理是:将可用内存按容量划分为大小相等的两块,...

2019-06-28 14:44:51 116

原创 Java中实现多线程的几种方式

1、实现Runnable接口,并实现接口的run()方法2、继承Thread类,重写run方法3、实现Callable接口,重写call()方法实现Runnable接口,并实现接口的run()方法(1) 自定义类并实现Runnable接口,实现run()方法。(2)创建Thread对象,用实现Runnable接口的对象作为参数实例化该Thread对象。(3)调用Thread的start...

2019-06-28 10:40:41 86

原创 TCP协议

TCP协议主要特点:首部占20个字节(1)面向连接;通信之前必须建立连接(2)每一条TCP连接只能是点对点的(一对一);(3)提供可靠交付的服务;通过TCP连接传输的数据,无差错,不丢失,不重复。(4)提供全双工通信;(5)面向字节流。虽然程序和TCP交互是一次一个数据块,但是Tcp把应用程序交下来的数据看成仅仅是一连串的无结构的字节流。TCP报文的结构各个字段的作用与含义:1...

2019-06-27 14:53:42 117

原创 Java序列化和反序列化?序列化ID表示什么意思以及他的作用?

一:概念:java对象序列化的意思就是将对象的状态转化成字节流,以后可以通过这些值再生成相同状态的对象。对象序列化是对象持久化的一种实现方法,它是将对象的属性和方法转化为一种序列化的形式用于存储和传输。反序列化就是根据这些保存的信息重建对象的过程。序列化:将java对象转化为字节序列的过程。反序列化:将字节序列转化为java对象的过程。二:为什么要序列化和反序列化当两个进程进行远程通信时...

2019-06-27 09:50:04 1598

原创 谈谈java的NIO

IO的含义讲NIO之前,我们先来看一下IO。Java IO即Java 输入输出系统。不管我们编写何种应用,都难免和各种输入输出相关的媒介打交道,其实和媒介进行IO的过程是十分复杂的,这要考虑的因素特别多,比如我们要考虑和哪种媒介进行IO(文件、控制台、网络等等),我们还要考虑具体和它们的通信方式(顺序、随机、二进制、按字符、按字、按行等等)。Java类库的设计者通过设计大量的类来攻克这些难题,这...

2019-06-26 15:30:23 134

原创 java中的super和this的使用和区别

(1)super()函数基本格式是:super([arg_list]);直接用super()加上父类构造器所需要的参数,就可以调用父类的构造器了。如果父类中有多个构造器,系统自动根据super()中参数个数和参数类型类匹配父类中的构造器。如果子类中没有显式地调用父类中无参数的构造器,也没有在构造器中调用重载的其它构造器,那么系统将会默认调用父类中无参数的构造器。此时如果父类中没有无参的构造器...

2019-06-26 09:18:53 118

原创 java抽象类、接口

抽象类:在 Java 面向对象当中,所有的对象都是用过类进行描绘的,但是并不是所有的类都是用来描绘对象的,如果一个类中没有包含足够的信息来描绘一个具体的对象,我们把这种类定义为抽象类。抽象类的特征:1 不能用来实例化对象,所以抽象类必须被继承才能够被使用,其他的功能和普通类相同。2 一个类只能继承一个抽象类。3 抽象类的修饰符不能是 private。抽象类的要点:1 非抽象类不能含有...

2018-12-05 20:47:15 148

原创 继承、多态

继承:继承是java面向对象编程技术的一块基石,因为它允许创建分等级层次的类。当我们定义很多部分具有相同属性和行为的类时,如果使用之前我们所讲类的定义方式进行定义,那么是不是发现有大量的代码重复书写,为了允许使用现有的类的功能,并在无须改写原来的类的情况下,引入了继承的概念。继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法,使得子类具有父类相同的行...

2018-11-27 20:56:31 55

原创 类加载

1、类加载机制:虚拟机将class文件加载到内存,并对数据进行校验、转换解析、初始化,变成可被虚拟机直接执行的Java类型。这就是虚拟机的类加载机制。 类的生命周期:加载–&gt;链接[验证–&gt;准备–&gt;解析]–&gt;初始化–&gt;使用–&gt;卸载其中,初始化有明确规定:1)遇到new、getstatic、putstatic、invokestatic字节码指令时,如果类没有进行...

2018-11-20 21:42:15 69

原创 异常处理

异常:异常是导致一个程序中断的指令流,一旦出现之后程序就将立即退出。public class ExpTest{ public static void main(String args[]){ int x = 10; int y = 0; System.out.println("计...

2018-11-13 22:03:24 98

原创 java类和对象的简析

面向对象概念:面对对象是一种现在最为流行的程序设计方法,几乎现在的所有应用都以面向对象为主,在70年代的Smaltalk语言之中进行了应用,后来根据面向对象的设计思路,才形成C++,而由C++产生了Java这门面向对象的编程语言,java是完全面对对象的。但是在面向对象设计之前,广泛采用的是面向过程,面向过程只是针对于自己来解决问题。面向过程的操作是以程序的基本功能实现为主,实现之后就完成了,也...

2018-11-06 21:32:58 115

原创 String、StringBuffer、StringBuilder的区别

一、String,StingBuffer,StringBuilder是字符串变量还是常量String :在java中,String类是不可变的,对String类的任何改变,都是返回一个新的String类对象。这就导致每次对String的操作都会生成新的String对象,这样不仅效率低下,而且大量浪费有限的内存空间。String 对象的值是System.Char 对象的有序集合,用于表示字符串。S...

2018-10-30 22:53:43 114

原创 java:String类常用的一些方法

1、获取长度:String str = "i am a student.";  int str1=str.length();2、输入下标,返回字符String str = "i am a student.";//主串char c = str.charAt(2);System.out.println(c);//返回字符a3、查看某字符是否存在String str = "i am ...

2018-10-23 20:40:56 101

原创 二维数组

二维数组:本质上是以数组作为数组元素的数组,即&amp;quot;数组的数组&amp;quot;,类型说明符 数组名[常量表达式][常量表达式]。二维数组又称为矩阵。1、数组的定义:在调用new对二维数组初始化之前不能使用它。另外,如果知道数组元素就可以不调用new,直接使用简化的形式对二维数组进行初始化。1) int[][] arr = {{1,2,3},{4,5,6,},{7,8,9}}; ...

2018-10-15 22:55:38 197

原创 JAVA:一维数组

数组:相同数据类型的集合。1、数组的定义 int[]arr = {1,2,3,4} ; int[]arr = new int[]{1,2,3,4}; int[]arr = new int[4];2、数组的访问 int[]arr = new int[]{1,2,3,4}; arr[0] = 100; arr[5] = 100; //OutOfB...

2018-10-11 19:11:59 1556

空空如也

空空如也

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

TA关注的人

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