<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[weichen_Hi的博客]]></title><description><![CDATA[]]></description><link>https://blog.csdn.net/weichen_Hi</link><language>zh-cn</language><generator>https://blog.csdn.net/</generator><copyright><![CDATA[Copyright &copy; weichen_Hi]]></copyright><item><title><![CDATA[一、Spring MVC-使用注解构建Spring MVC]]></title><link>https://blog.csdn.net/weichen_Hi/article/details/80244373</link><guid>https://blog.csdn.net/weichen_Hi/article/details/80244373</guid><author>weichen_Hi</author><pubDate>Tue, 08 May 2018 20:01:19 +0800</pubDate><description><![CDATA[一、原理    一个Web应用，会收到用户的请求。使用Spring MVC框架代替使用servlet来处理请求。Spring MVC原理图如下：    可以看到：接收请求后，调度Servlet、处理器映射（handler mapping）、控制器、视图解析器（view resolver）之间等处理，最后响应用户。详细步骤如下：  1. 请求通过前端控制器（DispatcherServlet）   ...]]></description><category></category></item><item><title><![CDATA[三、Spring-自动装配Bean，Java显式装配Bean，XML显式状态bean]]></title><link>https://blog.csdn.net/weichen_Hi/article/details/80231689</link><guid>https://blog.csdn.net/weichen_Hi/article/details/80231689</guid><author>weichen_Hi</author><pubDate>Mon, 07 May 2018 21:44:06 +0800</pubDate><description><![CDATA[一、创建实例    自动装配Bean，是指使用组件扫描（@ComponentScan），让Spring自动创建Bean。比较常用。1、类A-组件类package two.atuoConfigurationBean;

import org.springframework.stereotype.Component;

@Component
public class A {

	public void...]]></description><category></category></item><item><title><![CDATA[Java-线程并发（二）-队列同步器-AbstractQueuedSynchronizer]]></title><link>https://blog.csdn.net/weichen_Hi/article/details/79944555</link><guid>https://blog.csdn.net/weichen_Hi/article/details/79944555</guid><author>weichen_Hi</author><pubDate>Sun, 06 May 2018 23:17:34 +0800</pubDate><description><![CDATA[1、队列同步器概念队列同步器是用来构建锁的基础，它使用一个int变量表示资源的被锁状态，使用FIFO队列来控制线程对资源的加锁。即线程必须先进入队列等待，当资源空闲允许后才能对资源加锁。它提供线程安全地访问状态：getState()：获取状态setState(int newState)：设置状态compareAndSetState(int expect,int update)：使用CAS操作设置当...]]></description><category></category></item><item><title><![CDATA[Java-线程并发（一）-读写锁-ReentrantReadWriteLock]]></title><link>https://blog.csdn.net/weichen_Hi/article/details/79776427</link><guid>https://blog.csdn.net/weichen_Hi/article/details/79776427</guid><author>weichen_Hi</author><pubDate>Sun, 06 May 2018 23:14:10 +0800</pubDate><description><![CDATA[1、锁基本概念： java并发为了线程安全需要对线程进行加锁，从而保证各线程安全地访问共享数据。但是加锁安全之后，又想提高加锁的效率。出现了共享锁和排它锁。共享锁：同一资源允许多个线程对其进行操作，而且不会引起数据不安全（如脏数据、幻读等现象）排它锁：同一资源允许一个线程对其进行操作，而且不会引起数据不安全综上，共享锁的效率比排它锁高，但并不是所有场景都适用于共享锁。读写锁就是在某一场景下使用...]]></description><category></category></item><item><title><![CDATA[二、Spring-AOP]]></title><link>https://blog.csdn.net/weichen_Hi/article/details/80219490</link><guid>https://blog.csdn.net/weichen_Hi/article/details/80219490</guid><author>weichen_Hi</author><pubDate>Sun, 06 May 2018 22:52:20 +0800</pubDate><description><![CDATA[一、面向切面编程目的：把应用在各处的功能分离出来，使其成为可重用的组件Spring AOP把业务看作两类：核心关注点和横切关注点核心关注点：核心业务横切关注点：经常融入到核心业务中的系统服务。如日志、事务管理、安全Spring AOP工作原理：AOP使横切关注点模块化，将其与核心业务逻辑相分离。二、实例注意：加入Spring的依赖包1、IA接口package one.aop;

public in...]]></description><category></category></item><item><title><![CDATA[一、Spring注入依赖]]></title><link>https://blog.csdn.net/weichen_Hi/article/details/80218712</link><guid>https://blog.csdn.net/weichen_Hi/article/details/80218712</guid><author>weichen_Hi</author><pubDate>Sun, 06 May 2018 22:30:44 +0800</pubDate><description><![CDATA[一、注入依赖（Dependency Injection）  ● 目的：使相互协作组件保持松散耦合。  ● 实现原理：通过Spring容器创建对象的实例，而不是由业务创建。使业务不用关心业务之外的事情。二、创建Spring项目1、Spring项目也可向Java项目一样运行，所以这里创建Java项目。只说明与Java项目有区别的。          这里只需注意五个地方：A类、B类、myMain类、m...]]></description><category></category></item><item><title><![CDATA[java虚拟机知识点-垃圾收集器与内存分配策略]]></title><link>https://blog.csdn.net/weichen_Hi/article/details/79676078</link><guid>https://blog.csdn.net/weichen_Hi/article/details/79676078</guid><author>weichen_Hi</author><pubDate>Sat, 24 Mar 2018 11:21:09 +0800</pubDate><description><![CDATA[一、概述1、线程私有：程序计数器、虚拟机栈、本地方法栈2、运行期间分配和回收内存：Java堆和方法区二、对象存活判定算法可达性分析算法通过一系列成为“GC Roots”的对象作为起点，从这些节点开始向下搜索，搜索所走过的路径成为引用链（Reference Chain）；当对象不存在引用链时则为不可用可作为“GC Roots”的对象：虚拟机栈（栈帧中的本地变量表）中引用的对象方法区中类静态属性引用的...]]></description><category></category></item><item><title><![CDATA[Java虚拟机知识点-内存分配]]></title><link>https://blog.csdn.net/weichen_Hi/article/details/79674689</link><guid>https://blog.csdn.net/weichen_Hi/article/details/79674689</guid><author>weichen_Hi</author><pubDate>Sat, 24 Mar 2018 09:22:17 +0800</pubDate><description><![CDATA[一、概述1.不再需要为每一个new操作去写配对的delete/free代码，不容易出现内存泄露和内存溢出问题二、运行时数据区域程序计数器：每个线程都有一个（线程私有）；唯一一个没有在Java虚拟机规范中规定任何OutMemoryError的内存区域Java虚拟机栈：线程私有；描述Java方法执行的内存模型：每个方法在执行的同时都会创建一个栈帧用于存储局部变量表、操作数栈、动态链接、方法出口等信息局...]]></description><category></category></item><item><title><![CDATA[邻接矩阵的图遍历—深度、广度 java实现]]></title><link>https://blog.csdn.net/weichen_Hi/article/details/79605197</link><guid>https://blog.csdn.net/weichen_Hi/article/details/79605197</guid><author>weichen_Hi</author><pubDate>Sun, 18 Mar 2018 22:30:46 +0800</pubDate><description><![CDATA[1、图结构
	public static int max_ver_num=10;
	
	//图
	class MGraph{
		char ver[]=new char[max_ver_num];	//顶点向量
		int arc[][]=new int[max_ver_num][max_ver_num];		//邻接矩阵
		int vernum,arcnum;	//当前顶点数，边数]]></description><category></category></item><item><title><![CDATA[java 静态代理、JDK代理、Cglib代理]]></title><link>https://blog.csdn.net/weichen_Hi/article/details/79558526</link><guid>https://blog.csdn.net/weichen_Hi/article/details/79558526</guid><author>weichen_Hi</author><pubDate>Wed, 14 Mar 2018 18:28:31 +0800</pubDate><description><![CDATA[1、代理模式        代理对象代表目标对象被访问，代理类可以在目标对象实现的基础上,增强额外的功能操作,即扩展目标对象的功能。      2、常见的三种代理实现静态代理动态代理java JDK代理Cglib代理3、静态代理代理类和被代理类实现相同的接口或继承相同的父类，代理对象通过他们的共同的接口或父类访问被代理类。实现：下面是问手机（YourPhone）的价格，但实际上是问华为手机的价格。...]]></description><category></category></item><item><title><![CDATA[java对象序列化]]></title><link>https://blog.csdn.net/weichen_Hi/article/details/79537512</link><guid>https://blog.csdn.net/weichen_Hi/article/details/79537512</guid><author>weichen_Hi</author><pubDate>Tue, 13 Mar 2018 10:54:39 +0800</pubDate><description><![CDATA[1、序列化Java 提供了一种对象序列化的机制，该机制中，一个对象可以被表示为一个字节序列，该字节序列包括该对象的数据、有关对象的类型的信息和存储在对象中数据的类型。将序列化对象写入文件之后，可以从文件中读取出来，并且对它进行反序列化，也就是说，对象的类型信息、对象的数据，还有对象中的数据类型可以用来在内存中新建对象。整个过程都是 Java 虚拟机（JVM）独立的，也就是说，在一个平台上序列化的对...]]></description><category></category></item><item><title><![CDATA[java泛型]]></title><link>https://blog.csdn.net/weichen_Hi/article/details/79537132</link><guid>https://blog.csdn.net/weichen_Hi/article/details/79537132</guid><author>weichen_Hi</author><pubDate>Tue, 13 Mar 2018 10:44:48 +0800</pubDate><description><![CDATA[一、泛型方法1、规则所有泛型方法声明都有一个类型参数声明部分（由尖括号分隔），该类型参数声明部分在方法返回类型之前每一个类型参数声明部分包含一个或多个类型参数，参数间用逗号隔开。类型参数能被用来声明返回值类型类型参数只能代表引用型类型        //泛型方法
	public static &amp;lt;E,T&amp;gt; void method(E[] a,T b) {
		for (E e : a) ...]]></description><category></category></item><item><title><![CDATA[java新添知识点—第十五章]]></title><link>https://blog.csdn.net/weichen_Hi/article/details/79536454</link><guid>https://blog.csdn.net/weichen_Hi/article/details/79536454</guid><author>weichen_Hi</author><pubDate>Tue, 13 Mar 2018 09:59:26 +0800</pubDate><description><![CDATA[【注】博客在看了java程序设计基础和java语言程序设计（基础篇）总结的，想从头开始复习请请看java程序设计基础一、基本数据类型Java对大小写敏感/* */注释不能嵌套在Java中，整型的范围与运行Java代码的机器无关长整型数值：在后面加L二进制数值：前缀为0b数值写法：数值可用下划线隔开，其原数值不变BigDecimal类：在数值计算中不含任何舍入误差整型值与布尔型值之间不能互相转换整数...]]></description><category></category></item><item><title><![CDATA[java补漏知识点—第十四章]]></title><link>https://blog.csdn.net/weichen_Hi/article/details/79536426</link><guid>https://blog.csdn.net/weichen_Hi/article/details/79536426</guid><author>weichen_Hi</author><pubDate>Tue, 13 Mar 2018 09:55:35 +0800</pubDate><description><![CDATA[一、二进制I/O文件输入输出类：文本I/O类和二进制I/O类抽象类InputStream：是读取二进制数据的根类方法：read()从输入流中读取下一个字节数据read(byte[] b)从输入流中读取b.length个字节到数组b中read(byte[] b,int off,int len)从输入流读取字节并且将它们保存在b[off],b[off+1],…,b[off+len-1]中availab...]]></description><category></category></item><item><title><![CDATA[java补漏知识点—第十三章]]></title><link>https://blog.csdn.net/weichen_Hi/article/details/79536413</link><guid>https://blog.csdn.net/weichen_Hi/article/details/79536413</guid><author>weichen_Hi</author><pubDate>Tue, 13 Mar 2018 09:54:32 +0800</pubDate><description><![CDATA[一、继承super：指代父类，可用于调用父类的普通方法和构造方法构造必须是构造方法的第一行（this也是）构造一个类的实例时，将会调用沿着继承链的所有父类的构造方法父类应该有无参的构造函数（防止子类没有定义构造时调用）仅当方法是可访问的（不是private）时，它才能被重写（覆盖≠重载）静态方法也能被继承，但不能被覆盖重写标注：在子类的方法前面放一个@OverrideJava中所有类都继承自Jav...]]></description><category></category></item><item><title><![CDATA[java补漏知识点—第十二章]]></title><link>https://blog.csdn.net/weichen_Hi/article/details/79536393</link><guid>https://blog.csdn.net/weichen_Hi/article/details/79536393</guid><author>weichen_Hi</author><pubDate>Tue, 13 Mar 2018 09:53:43 +0800</pubDate><description><![CDATA[一、抽象类Number类：是数值包装类、BigInteger以及BigDecimal类的抽象父类Calendar类：是GregorianCalendar类的抽象父类方法：get(int field)返回一个给定日历域的值set(int field,int value)将给定的日历设为指定值set(int year,int month,int dayOfMonth)设定日历的年、月（月份从0开始，0...]]></description><category></category></item><item><title><![CDATA[java补漏知识点—第十一章]]></title><link>https://blog.csdn.net/weichen_Hi/article/details/79536383</link><guid>https://blog.csdn.net/weichen_Hi/article/details/79536383</guid><author>weichen_Hi</author><pubDate>Tue, 13 Mar 2018 09:52:56 +0800</pubDate><description><![CDATA[一、异常处理声明异常的关键字：throws抛出异常后，编译器会跳到catch块；若没有,则跳到调用该方法的方法，继续查找catch块，如果在打印链中都找不到，程序终止并在控制台打印catch块一个catch块可以捕获一个异常对象，它就能捕获其所有异常子类的异常若多个catch块，异常子类的顺序必须在其父类的前面            4. Java API中的大多数异常类都包含两个构造方法：一个无...]]></description><category></category></item><item><title><![CDATA[java补漏知识点—第十章]]></title><link>https://blog.csdn.net/weichen_Hi/article/details/79536221</link><guid>https://blog.csdn.net/weichen_Hi/article/details/79536221</guid><author>weichen_Hi</author><pubDate>Tue, 13 Mar 2018 09:51:39 +0800</pubDate><description><![CDATA[一、数组除基本类型外，数组变量都可看做其引用；传递参数是，基本类型是按值传递，而数组是按其引用传递的堆用于动态内存分配变长参数类型相同但个数可变方法中的参数声明：typeName… parameterName只能给方法中指定一个可变长参数，同时该参数必须是最后一个参数Array类sort或parallelSort方法：对数组排序equals方法：判断两个数组是否相等fill方法：填充整个数组或部分...]]></description><category></category></item><item><title><![CDATA[java补漏知识点—第九章]]></title><link>https://blog.csdn.net/weichen_Hi/article/details/79536164</link><guid>https://blog.csdn.net/weichen_Hi/article/details/79536164</guid><author>weichen_Hi</author><pubDate>Tue, 13 Mar 2018 09:42:37 +0800</pubDate><description><![CDATA[一、Math类三角函数sin(radians)返回以弧度为单位的角度的三角正弦函数值，1弧度约为57.3°cos(radians)返回以弧度为单位的角度的三角余弦函数值tan(radians)返回以弧度为单位的角度的三角正切函数值toRadians(degree)将以度为单位的角度值转换为以弧度表示toDegrees(radians)将以弧度为单位的角度值转换为以度表示asin(a)返回以弧度为单...]]></description><category></category></item><item><title><![CDATA[java补漏知识点—第八章]]></title><link>https://blog.csdn.net/weichen_Hi/article/details/79532774</link><guid>https://blog.csdn.net/weichen_Hi/article/details/79532774</guid><author>weichen_Hi</author><pubDate>Mon, 12 Mar 2018 20:59:16 +0800</pubDate><description><![CDATA[0.   解释的过程就是一次将字节码中单独的一步翻译为目标机器语言代码，翻译完一步后立即执行1.  输入1)  创建Scanner对象：Scanner in=new Scanner(System.in)2) 对象调用方法：in.方法        a) nextByte()、nextShort()、nextInt()、nextLong()、nextFloat()、nextDouble()2. 运算...]]></description><category></category></item></channel></rss>