- 博客(17)
- 收藏
- 关注
转载 spring读取xml生成BeanDefinion时的扩展点
今天学习了spring源码 收获颇多 学习了模板方法模式 在看完spring源码读取xml的那部分后,存在些许疑惑–我一一道来 preProcessXml(root);//在解析xml并注册BeanDefinition之前执行 parseBeanDefinitions(root, this.delegate); postProcessXml(root);//在解析xml并注册BeanDefinit...
2019-09-02 21:05:03
324
原创 JAVA并发编程---AtomicLong类
讲AtomicLong类之前先得讲解下CAS操作 什么时CAS:JDK提供的非阻塞原子性操作,它通过硬件保证了比较-更新的原子性 主要方法:boolean compareAndSwapLong(Object obj,long value,long expect,long update) 四个操作数为:对象的内存地址,对象中的变量的偏移量,变量的预期值,新值。 操作含义:如果对象obj中内存偏移量为...
2019-05-29 15:19:29
676
原创 许久后的更新-------JAVA多线程编程-synchronized和volatile
最近忙于各种事情 停发了3个月吧 学到了不少的知识 今天总结下JAVA多线程的知识 绝对给你讲的明明白白滴 1.首先得了解并发和并行的概念 并发 :是指同一个时间段内多个任务同时在执行 并行:在单位时间内多个任务在执行 有人说并发和并行不是一样的吗? 解答:并发的一个时间段可以由多个单位时间累计而成,不一定是单位时间内多个任务在同时执行 在多线程程序中,会产生许多多线程问题,如:竞态条件,数据竞...
2019-05-28 19:16:49
153
转载 Web解析(转载)
转载至原文章(https://blog.youkuaiyun.com/qq_36359022/article/details/81666221) 概述:Web服务器概念较为广泛,我们最常说的Web服务器指的是网站服务器,它是建立在Internet之上并且驻留在某种计算机上的程序。Web服务器可以向Web客户端(如浏览器)提供文档或其他服务,只要是遵循HTTP协议而设计的网络应用程序都可以是Web客户端。 We...
2019-03-05 18:49:46
410
原创 Web服务器底层解析(浅谈)
基本理念:1.获取请求协议。2.返回响应协议。3.封装响应信息。 4.封装请求信息。5.处理请求参数。6.建立Servlet。7.整合配置文件。8.封装多线程。9.处理错误内容和首页。 1.获取请求信息,并且封装 public class Request { private final String CRLF="\r\n"; //协议信息 private String s; //协议方式 pri...
2019-03-05 18:45:29
1593
2
原创 leetcode每日一练:整数转换为罗马数字(java)
题目: 罗马数字由七个不同的符号表示:I,V,X,L,C,D和M。 符号值。 I 1。 V 5。 X 10。 L 50。 C 100。 D 500。 M 1000。 例如,两个用罗马数字写成二,只有两个一个加在一起。十二写成,十二,也就是简单的X+II。数字二十七写成二十七,即XX+V+II。 罗马数字通常从左到右写成从大到小。但是,四的数字不是三。相反,数字4被写成IV。因为1在5之前,我们把它...
2019-03-04 22:18:01
237
原创 leetcode每日一练:反向整数(java)
题目:给定32位有符号整数,整数的反向数字。 例:输入:-123输出:-321 假设我们所处理的环境只能存储在32位有符号整数范围内。为了解决这个问题,假设函数在反转整数时返回0 思想:因为二进制不能存32位数,要进行溢出判断. class Solution { public int reverse(int x) { int rev = 0; while (x != 0) { ...
2019-03-03 19:31:32
167
原创 leetcode每日一练:最长回文子串(java)
题目: 给定一个字符串s,在s中找到最长的字符串。您可以假设s的最大长度为1000。 Example 1: 输入: “babad”。 输出: “bab”。 注:“aba”也是一个有效的答案。 思想:中心结点法,就是遍历整个字符串,将每个点分别都设为中心结点,然后第二个遍历是分别对设定的中心向左右扩展,所以复杂度为o(n^2)。 比如对于字符串abba,先检测关于字符对称,设定中心为a,发现最长回文...
2019-03-02 16:34:32
252
转载 web.xml详解(转载)
原文章:(https://www.cnblogs.com/vanl/p/5737656.html ) 写在前面:鄙人才学疏浅,关于这篇文章,鄙人也是在网上收集的。有两个目的。一是记录下来加深自己的理解,二是希望这篇文章能对大家有所帮助。最后欢迎大家一起讨论。 一:web.xml加载过程 简单说一下,web.xml的加载过程。当我们启动一个WEB项目容器时,容器包括(JBoss,Tomcat等)。首...
2019-02-27 17:24:16
1117
1
转载 Java中print、printf、println的区别(转载)
printf主要是继承了C语言的printf的一些特性,可以进行格式化输出 print就是一般的标准输出,但是不换行 println和print基本没什么差别,就是最后会换行 System.out.printf(“the number is: d”,t); 参照JAVA API的定义如下: ‘d’ 整数 结果被格式化为十进制整数 ‘o’ 整数 结果被格式化为八进制整数 ‘x’, ‘X’ 整数 结果...
2019-02-27 15:24:39
466
原创 leetcode每日一练:两个排序数组的中值(java)
题目 : 有两个排序数组s1和s2大小分别为m和n。 找到两个排序数组的中间值。总的运行时复杂度应该是O(log(m+n)。 你可以假设s1和s2不可能都是空的。 例1: nums1 = [1, 3] nums2 = [2]; The median is 2.0。 思想(可能性能略差):先将俩数组合并为一个数组,再利用快速排序将数组排序,再判断找出中间值。 代码: class Solution {...
2019-02-27 11:32:46
238
原创 类加载全过程(浅谈)
类加载的机制 –JAVA把Class文件加载到内存中,并对数据进行效验,解析和初始化,最终形成JVM可以直接使用的JAVA类型的过程。 分为: 1.加载(先加载类,再加载对象!) 将Class字节码内容加载到内存中,并将这些静态数据换成方法区中运行时的二进制数据结构,在堆中生成一个代表这个类的java.lang.class–对象(反射对象)可以指向方法区的数据,作为方法区类数据的访问入口。 cla...
2019-02-26 16:06:07
626
1
转载 leetcode每日一练:最长子字符串(java)
题目:给定字符串时,查找最长子串不会重复角色。 例子:输入: “abcabcbb”。输出: 3 说明:答案是“ABC”,长度为3。 思想(高级):用集合存储字符是否在字符串内出现,先初始化集合为-1,则代表字符没有出现,然后用一个变量FLAG标记子字符串出现的位置,用字符ASCLL码值代表字符在集合中的存储位置 int lengthOfLongestSubstring(string s) { v...
2019-02-26 15:24:22
293
原创 反射详解
反射知识是JAVA框架中常用的技术,学会是非常有必要的 package a; import java.lang.reflect.Constructor; import java.lang.reflect.Field; import java.lang.reflect.Method; @SuppressWarnings("all") public class Demo { public stat...
2019-02-25 18:29:55
150
转载 Java向下转型的意义(摘要)
原文章:(https://blog.youkuaiyun.com/xyh269/article/details/52231944) 这篇博客就是讲向下转型的,那我们就来学习下向下转型,了解下这种特性的意义和使用场景 //定义了一个电子产品的接口 public interface Electronics { } //新建一个Thinkpad笔记本类,并实现电子产品接口 public class Thinkp...
2019-02-25 17:45:50
290
原创 leetcode每日一练:Add Two Numbers(java)
有两个非负整数的非空链表。链表按反向顺序存储,它们的每个节点都包含一个数字。添加这两个数字并将其作为链接列表返回。您可以假设这两个数字不包含任何前导零,除了数字0本身。 示例:输入:(2->4->3)+(5->6->4)输出:7->0->8 得:342+465=807。 思想:创建一个新链表,将俩个链表的值相加取于10的值赋给新节点, 如果取于前的值大于10,...
2019-02-25 17:08:11
182
原创 leetcode每日一练:求二和(java)
题目: 给定一个整数数组,返回这两个数字的索引,使它们加到一个特定的目标。您可以假设每个输入都有一个解决方案,并且可能不会使用相同的元素两次。 Example: 给定数组s=[2,7,11,15],目标=9 因为s[0]+s[1]=2+7=9,返回[0,1] 想法: 利用Map可以存储键值,找出与元素: class Solution { public int[] twoSum(int[] nums...
2019-02-25 16:38:59
124
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人