- 博客(31)
- 收藏
- 关注
原创 面试题
Java面试题int 和Integer有什么区别 如果整型字面量的值在-128到127之间,那么不会new新的Integer对象,而是直接引用常量池中的Integer对象。为什么要用SpringBoot? 因为Java EE使用Spring逐渐变得笨重起来,大量的XML文件存在与项目中,繁琐的配置,整合第三方框架的配置问题,低下的开发效率和部署效率等等问题遵循“习惯优于配置”的原则,使用S
2017-08-24 21:38:57
487
原创 Java并发编程的艺术笔记
第一章 并发挑战避免死锁的几个常见的方法 避免一个线程同时获得多个锁。避免一个线程在锁内同时占用多个资源,尽量保证每个锁只占用一个资源尝试使用定时锁,使用lock.tryLock(timeout)来替代使用内部锁机制。对于数据库锁,加锁和解锁必须在一个数据库连接里,否则会出现解锁失败的情况。第二章####锁的升级与对比 无锁状态偏向锁状态轻量级锁状态重量级锁状态 这几种状态会
2017-08-24 19:47:38
356
原创 Mysql5.6 从零开始学 读书笔记
第四章 数据库的基本操作使用唯一约束 唯一约束可以确保一列或者几列不出现重复值 语法:字段名 数据类型 UNIQUE UNIQUE和PRIMARY KEY的区别:一个表中可以有多个字段声明为UNIQUE,但是只有一个PRIMARY KEY声明;声明为PRIMARY KEY的列不允许有空值,但是声明为UNQIUE的字段允许有空值的存在。设置表的属性值自动增加 为主键添加ATUO_INCRE
2017-08-15 19:55:52
857
原创 Java多线程编程核心技术
第一章 Java多线程技能进程和多线程的概念及线程的优点 进程进程是操作系统结构的基础;是一次程序的执行;是一个程序及其数据在处理机上顺序执行时发生的活动;是程序在一个数据集合上运行的过程,它是系统进行资源分配和调度的一个基本单位。windows任务管理器中每一个运行的exe程序就可以理解为一个进程。什么是线程 线程可以理解为是在进程中独立运行的子任务。比如QQ.exe运行时就有很多的子任
2017-08-06 18:19:32
1081
原创 解决Android Studio Refreshing XXX Project时间过长的方法
最近升级Android Studio2.2 到 2.3 的过程中,Android Studio提示更新Gradle3.3,于是就更新了,但是一直卡在Refreshing project的进度条,等了几十分钟都没有完成,于是在网上找到了解决办法。采用手动升级gradle的方法。 1. 直接从官网(或者其他网站)下载gradle-3.3-all.zip压缩包。 https://s
2017-06-06 17:41:05
879
原创 Universal-Image-Loader从使用到源码分析
为什么我要写一个已经过时框架的解析框架呢?那在我自己的项目里面其实也不用这个框架了,一般用的是Glide框架,那为什么我要写这篇文章呢,是因为由于我目前水平有限,对于Glide的源码难以参透,那与其在一个高大上的框架上钻牛角尖,不如把已有的框架进行一个全面的解析,因为图片解析框架无非就是如何高效的加载图片,若参透了之前的框架,那么对新的框架新的技术,也就可以了解其本质,从而更游刃有余的去学习新的技术
2017-03-23 22:27:28
345
原创 《深入理解java虚拟机》笔记 —— 第七章 虚拟机类加载机制
第七章概述 虚拟机把描述类的数据从Class文件加载到内存,对数据进行校验,转换解析,初始化,最终形成可以被java虚拟机直接使用的java类型,这就是类加载机制。类加载时机 类从被加载到内存中到卸载出内存,所经过的生命周期为:加载-验证-准备-解析-初始化-使用-卸载,其中验证-准备-解析三个部分统称为连接。 解析阶段和其他的阶段不同,解析阶段可以在初始化之后执行,这时为了支持java语
2017-02-21 18:22:22
325
原创 《深入理解java虚拟机》笔记——第六章 类文件结构
第六章6.2 无关性的基石 实现语言无关性的基础仍然是虚拟机和字节码存储格式。java虚拟机不和包括java在内的任何语言绑定,它只和“Class文件”这种特定的二进制文件格式所关联,Class文件中包含了java虚拟机指令集和符号表以及若干其他辅助信息。6.3 Class类文件的结构 注意:任何一个Class文件都对应着唯一一个类或接口的定义信息,但反过来说,类或接口并不一定都得定义在文件
2017-02-18 14:36:32
480
原创 《深入理解java虚拟机》笔记——第四章 虚拟机性能监控与故障处理工具
第四章4.2 JDK的命令行工具jps:虚拟机进程状况工具 列出正在运行的虚拟机进程,并显示虚拟机执行主类名称以及这些进程的本地唯一ID。jstat:虚拟机统计信息监视工具 用于监视虚拟机各种运行转台信息的命令行工具。它可以显示本地或者远程虚拟机进程中的类装载、内存、垃圾收集、JIT编译等运行数据。jinfo:java配置信息工具 用于实时查看和调整虚拟机各项参数。jmap : jav
2017-02-18 11:21:29
369
原创 《深入理解java虚拟机》笔记——第三章 垃圾收集器与内存分配策略
第三章3.1 概述 哪些内存需要回收? 什么时候回收? 怎么回收? 这里垃圾回收器关注的是Java堆和方法区的内存,程序计数器、虚拟栈、本地方法栈三个区域会随着线程而生,随着线程而灭, 不用管他。3.2 对象已死吗引用计数法 给一个对象添加一个引用计数器,每当一个地方引用它时,计数器值加一;当引用失效时,计数器值就减一;当为0的时候对象就是不可能再被使用的。但是,在java虚拟机中没有
2017-02-17 17:42:47
1303
原创 《深入理解java虚拟机》笔记——第二章 java内存区域
第二章2.2 运行时数据区域程序计数器 程序计数器(PC)是一块比较小的内存空间,它可以看作是当前线程执行的字节码的行号指示器。字节码解释器工作时就是通过这个计数器的值来选取下一条需要执行的字节码指令。为了线程切换后能恢复到正确的执行位置,每条线程都需要一个独立的程序计数器,各个线程之间计数器互不影响,独立存储,称之为“线程私有”的内存。java虚拟机栈 java虚拟机栈是线程私有的,描述的
2017-02-17 11:55:28
333
原创 HTTP与HTTPS的区别
HTTP 的 URL 以 http:// 开头,而 HTTPS 的 URL 以 https:// 开头 HTTP 是不安全的,而 HTTPS 是安全的 HTTP 标准端口是 80 ,而 HTTPS 的标准端口是 443 在 OSI 网络模型中,HTTP 工作于应用层,而 HTTPS 工作在传输层 HTTP 无需加密,而 HTTPS 对传输的数据进行加密 HTTP 无需证书,而 H
2017-02-16 21:39:08
332
原创 路由器与交换机的区别
路由器工作于OSI模型的网络层,能够识别IP地址,并根据IP地址转发数据包,并维护着路由表,能够基于路由表进行最佳路线选择; 路由器上还能开启ACL访问控制列表、NAT地址转换等功能,扩展网络应用;传统交换机工作于OSI模型的数据链路层,能够识别MAC地址,根据MAC地址转发数据帧,并维护着一张桥表,根据桥表上MAC地址和端口的对应关系进行数据帧转发。交换机能够隔离冲突域,并划分VLAN。
2017-02-16 21:38:44
354
原创 IP地址分类
连接在Internet中的每一台主机(或路由器)都分配一个32比特的全球唯一的标识符,即IP地址。传统的IP地址是分类的地址,分为A,B,C,D,E五类。 无论哪类IP地址,都由网络号和主机号两部分组成。即IP地址::={<网络号>,<主机号>}。其中网络号标志主机(或路由器)所连接到的网络。一个网络号在整个因特网范围内必须是唯一的。主机号标志该主机(或路由器)。一个主机号在它面前的网络号
2017-02-16 21:38:24
608
原创 Ping的整个过程。ICMP报文是什么
为了提高IP数据报交付成功机会,在网络层使用过了网际控制报文协议(ICMP)来允许主机或路由器报告差错和异常情况。ICMP报文作为IP层数据报的数据,加上数据报首部,组成IP数据报发出去。ICMP协议是IP层协议。假设有两台主机`PC1`和`PC2`,如下:``` PC1------------PC2 IP:192.168.1.1 IP:19
2017-02-16 21:37:11
12625
3
原创 电脑上访问一个网页,整个过程是怎么样的:DNS、HTTP、TCP、OSPF、IP、ARP
假设你用一个全新的浏览器(第一次启动的那种),访问百度(http://www.baidu.com/**),在你敲入网址并按下回车之后,将会发生以下神奇的事情: http://www.baidu.com/浏览器先尝试从Host文件中获取http://www.baidu.com/**对应的IP地址,如果能取到当然万事大吉大家都能嗨,如果不能,就使用DNS协议来获取IP咯。 在DNS协议中,
2017-02-16 21:36:21
3495
原创 Cookie与Session的作用与原理
cookie机制Cookies是服务器在本地机器上存储的小段文本并随每一个请求发送至同一个服务器。IETF RFC 2965 HTTP State Management Mechanism 是通用cookie规范。网络服务器用HTTP头向客户端发送cookies,在客户终端,浏览器解析这些cookies并将它们保存为一个本地文件,它会自动将同一服务器的任何请求缚上这些cookies 。具体来说coo
2017-02-16 21:34:17
607
原创 HTTP长连接
从 HTTP/1.1起,默认使用长连接,用以保持连接特性。使用长连接的HTTP协议,会在响应头有加入这行代码:Connection:keep-alive 在使用长连接的情况下,当一个网页打开完成后,客户端和服务器之间用于传输HTTP数据的 TCP连接不会关闭,如果客户端再次访问这个服务器上的网页,会继续使用这一条已经建立的连接。Keep-Alive不会永久保持连接,它有一个保持时间,可以在不同的服
2017-02-16 21:33:41
336
原创 Http1.1和Http1.0的区别
HTTP1.0,每次请求和响应都需要建立一个单独的连接,每次连接只是传输一个对象,严重影响客户机和服务器的性能。 HTTP 1.1支持持久连接,在一个TCP连接上可以传送多个HTTP请求和响应,减少了建立和关闭连接的消耗和延迟。HTTP 1.1 还通过增加更多的请求头和响应头来改进和扩充HTTP 1.0 的功能。在HTTP 1.1中增加Host请求头字段后,实现了在一台WEB服务器上可以在同
2017-02-16 21:33:16
1532
1
原创 Http的报文结构
请求报文HTTP协议的请求方法有GET、POST、HEAD、PUT、DELETE、OPTIONS、TRACE、CONNECT。响应报文结构: 状态行、消息报头、响应正文。状态码1xx:指示信息–表示请求已接收,继续处理。2xx:成功–表示请求已被成功接收、理解、接受。3xx:重定向–要完成请求必须进行更进一步的操作。4xx:客户端错误–请求有语法错误或请求无法实现。5xx:服务器端错误–
2017-02-16 21:32:48
440
原创 TCP滑动窗口与回退N针协议
滑动窗口 发送和接受方都会维护一个数据帧的序列,这个序列被称作窗口。发送方的窗口大小由接受方确定,目的在于控制发送速度,以免接受方的缓存不够大,而导致溢出,同时控制流量也可以避免网络拥塞。下面图中的4,5,6号数据帧已经被发送出去,但是未收到关联的ACK,7,8,9帧则是等待发送。可以看出发送端的窗口大小为6,这是由接受端告知的(事实上必须考虑拥塞窗口cwnd,这里暂且考虑cwnd>rwnd)。
2017-02-16 21:32:17
1276
原创 TCP的拥塞控制
拥塞:即对资源的需求超过了可用的资源。若网络中许多资源同时供应不足,网络的性能就要明显变坏,整个网络的吞吐量随之负荷的增大而下降。 拥塞控制:防止过多的数据注入到网络中,这样可以使网络中的路由器或链路不致过载。拥塞控制所要做的都有一个前提:网络能够承受现有的网络负荷。拥塞控制是一个全局性的过程,涉及到所有的主机、路由器,以及与降低网络传输性能有关的所有因素。 流量控制:指点对点通信量的控
2017-02-16 21:31:50
420
原创 TCP的三次握手与四次挥手过程,各个状态名称与含义,TIMEWAIT的作用
三次握手第一次握手:主机A发送位码为syn=1,随机产生seq number=10001的数据包到服务器,主机B由SYN=1知道,A要求建立联机,此时状态为SYN_SENT; 第二次握手:主机B收到请求后要确认联机信息,向A发送ack number=(主机A的seq+1),syn=1,ack=1,随机产生seq=20001的包,此时状态由LISTEN变为SYN_RECV; 第三次握手:主机A
2017-02-16 21:31:15
7069
原创 TCP报文结构
源端口、目标端口:计算机上的进程要和其他进程通信是要通过计算机端口的,而一个计算机端口某个时刻只能被一个进程占用,所以通过指定源端口和目标端口,就可以知道是哪两个进程需要通信。源端口、目标端口是用16位表示的,可推算计算机的端口个数为2^16个。序列号:表示本报文段所发送数据的第一个字节的编号。在TCP连接中所传送的字节流的每一个字节都会按顺序编号。由于序列号由32位表示,所以每2^32个字节,就会
2017-02-16 21:30:35
8565
原创 OSI模型(开放式)和TCP/IP模型有什么区别?
开放式系统互联模型是一个参考标准,解释协议相互之间应该如何相互作用。TCP/IP协议是美国国防部发明的,是让互联网成为了目前这个样子的标准之一。开放式系统互联模型中没有清楚地描绘TCP/IP协议,但是在解释TCP/IP协议时很容易想到开放式系统互联模型。两者的主要区别如下:TCP/IP协议中的应用层处理开放式系统互联模型中的第五层、第六层和第七层的功能。TCP/IP协议中的传输层并不能总是保证在传输
2017-02-16 21:29:02
572
原创 OSI与TCP/IP各层的结构与功能,都有哪些协议?
OSI七层模型 OSI中的层 功能 TCP/IP协议族 应用层 文件传输,电子邮件,文件服务,虚拟终端 TFTP,HTTP,SNMP,FTP,SMTP,DNS,Telnet 表示层 数据格式化,代码转换,数据加密 没有协议 会话层 解除或建立与别的接点的联系 没有协议 传输层 提供端对端的接口 TCP,UDP 网络层 为数据包选择路由 IP,ICMP,RIP,OSPF,BGP,IGMP
2017-02-16 21:28:35
2046
原创 图解TCP/IP协议笔记
Tcp/Ip协议笔记OSI模型应用层:为应用程序提供服务并规定应用程序中通信相关的细节。表示层:将应用处理的信息转换为适合网络传输的格式,或者来自下一层的数据转换成上层能够处理的格式。因此它主要负责数据格式的转换。会话层:负责建立和断开通信连接(数据流动的逻辑通路),以及数据的分割等数据传输相关的管理。传输层:起着可靠传输的作用。只在通信双方节点上进行处理,而无需在路由器上处理。 网络层:
2017-02-16 21:24:14
703
原创 关于签名后的apk在真机上未安装的解决方法
今天遇到了一个问题,就是在打包apk签名后,在真机上安装的时候显示未安装,在网上找了很多方法都不成功,于是自己开始探索。 在as的logcat上打印了一句signatures do not match the previously installed version ignoring! 于是在baidu上查找,但是也没有找到方法,在stackoverflow上有解答说,清除数据,
2016-06-10 20:17:31
2719
转载 Android Studio新建的工程继承了AppCompatActivity设置隐藏标题栏还闪退
新建了一个工程,发现新建的普通的安卓工程它不是继承activity而是多了一层。它继承AppCompatActivity而AppCompatActivity继承Activity 按照继承的原理来说。它们应该没什么区别的。但当我去设置隐藏下标题栏的时候发现出现了闪退现象。问了很多人,答案基本上都是不继承AppCompatActivity直接继承Activity这样来做。其实这样做也是可以的。我就在想有
2016-02-07 10:37:33
1096
原创 杂谈
在学习技术的过程中我认为最重要的是什么? 1、持之以恒的心态 2、严瑾仔细的思路 3、科学的学习方法 在我的学习道路中,我满足了上面的第一点和第三点,但是,第二点却很难做到满意。在我学习一项技术时,总会因为粗心,比如打错一个字母,而导致花更多的时间来找出这个错误,这样导致我的效率低下,往往我会纠结好几个小时去找出这么一个单词拼写的错误。我想我得尽快改正,来提高我的学习效率
2016-02-02 15:25:54
254
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人