Android性别选择器和日期选择器 性别选择器layout布局文件中简单的放个控件<TextView android:id="@+id/information_sex" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="保密" app:layout
平衡树-红黑树(史上最通俗易懂的红黑树介绍及实现) 在了解红黑树之前,我们首先来了解一下2-3树,红黑树可以说是2-3树的一种具体实现。2-3查找树1. 2-3查找树的定义一棵2-3查找树要么为空,要么满足满足下面两个要求:2- 结点: 含有一个键(及其对应的值)和两条...
Spring Cloud NetFlix 一、简介微服务架构4个核心问题:服务很多,客户端怎么访问? 这么多服务,服务之间如何通信? (一般使用RPC或Http) 这么多服务,如何治理? 服务挂了怎么办?问题原因:网络不可靠!!解决方案:spring cloud 生态! Spring Cloud NetFlix 一站式解决方案 解决访问:api网关,zuul组件 解决通信:Feign —- HttpClient —— Http通信方式,同步,阻塞 解决治理:服务注册发现Eureka 解决挂了:熔断机制H
计算机网络学习笔记-第六章-应用层 目录概述客户/服务器方式和对等方式DHCP协议域名系统DNS作用因特网域名结构和域名分类域名服务器的分类域名解析的过程例题小结文件传送协议FTP概述应用基本工作原理例题电子邮箱万维网wwwURL组成超文本传输协议HTTP(HyperText Transfer Protocol)HTTP的报文格式使用Cookie在服务器上记录用户信息万维网缓存与代理服务器例题小结概述客户/服务器方式和对等方
计算机网络学习笔记-第五章-运输层 概述运输层端口号、复用与分用的概念概念发送方的复用和接收方的分用这个理解起来比较容易,TCP复用就是发送方封装时可以多个应用用TCP协议,UDP同理;分用的时候就是把接收方数据分发给多个应用。...
java学习笔记-类的加载器 第一节 概述1.类加载的分类2.类加载器的必要性3. 命名空间4. 类加载机制的基本特征第二节 类的加载器分类概述class ClassLoader { ClassLoader parent; //父类加载器 public ClassLoader(ClassLoader parent) { this.parent = parent; }}class ParentClassLoader extends.
java学习笔记-类的加载过程 目录概述/整个加载流程过程一:Loading(加载)阶段1.加载完成的操作2.二进制流的获取方式3.类模型和Class实例的位置4.数组类的加载过程二:Linking(链接)阶段1. 环节 1:之 链接阶段之 Verification ( 验证)2. 之 链接阶段之 Preparation ( 准备)3. 环节 3:之 链接阶段之 Resolution ( 解析)过程三:Initialization( 初始化) 阶段1.static和final的搭配问题2
java学习笔记-垃圾回收-垃圾回收器 GC分类和性能指标不同的垃圾回收器概述Serial回收器:串行回收ParNew回收器:并行回收Parallel回收器:吞吐量优先CMS回收器:低延迟G1回收器:区域化分代式垃圾回收器总结GC日志分析
java学习笔记-垃圾回收-垃圾回收相关概念 System.gc()的理解System.gc()是一个Full GC,Full GC就是全部都GC,不管新生代还是老年代;System.gc()有一个免责声明,无法保证是否执行下面这个就是一个例子,我们都知道对象第一次回收时(缓刑)是会调用finalize方法的,下面在没加System.runFinalization时,有时候会执行gc,有时候不会执行gc,因为不能确定是马上执行的,调用完程序就结束了,有时候程序结束慢了一点就调用了gc。下面是个例子内存溢出与内存泄漏内存溢出
java学习笔记-垃圾回收-垃圾回收相关算法 标记阶段引用计数算法JVM不采用这种算法 引用计数算法就是用一个整型属性存储被引用的情况,比如有3个引用,那就是3 引用计数算法无法处理循环引用 引用计数算法需要单独字段存储计数器 增加了存储空间的开销 引用计算算法每次赋值都需要更新计数器,伴随着加法和减法操作,增加了时间开销 优点:实现简单,垃圾对象便于辨识;判定效率高,回收没有延迟性。下面这种就是循环引用,如果采用引用计数算法,那当p置为null的时候,下面这三个对象就无法回收,因为始终有对象引用,导致内存泄漏验证JV
安卓学习笔记-RecyclerView使用Glide加载网络图片瀑布流失效的情况以及瀑布流item间距设置 瀑布流失效问题RecycleView瀑布流用Glide加载网络图片会导致瀑布流失效,因为不知道网络加载的图片具体高度是多少;这时候我们可以手动设置图片高度,随机值,这样瀑布流就能正常使用了@Override public void onBindViewHolder(@NonNull ViewHolder holder, int position) { ResultBeanData.ResultBean.HotInfoBean hotInfoBean = datas.get(.
java学习笔记-内存分布-String Table 目录String的基本特性不同版本的存储结构特性String 的内存分配String的基本操作字符串拼接细节(重要)intern的使用/String到底创建了几个对象String的基本特性不同版本的存储结构JDK9后换成byte数组,原因是char占的是两个字节,但是经常存储都是Latin-1字符和ISO-8859-1字符,只占了一个字节,剩下的一半就被浪费了 JDK9后换成了byte数组加上编码标记,如果存储的是一个字节的字符,那就用一个字节;如果存储的是两个字节
手撸springmvc 环境准备使用maven构建项目 依赖包如下 <dependencies> <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>3.1.0</version>
java学习笔记-内存分布-对象 对象实例化的几种方式对象创建的六个步骤第4步的初始化指的是对成员变量进行初始化,比如 有一个成员变量int i;这个默认就会赋个初值0,对象引用就是默认null,如果是方法中的局部变量不手动赋初值是会报错的。 第6步的初始化才是我们所熟悉的初始化,构造器的方式、代码块的方式对属性进行初始化。还有一个<cinit>是对类中静态属性的一个初始化,属于是类构造器的方法,理解为类初始化;<init>只能算类的构造器对应的方法,理解为实例初始化 总结一下:代码Object
java学习笔记-内存分布-方法区/元空间 目录栈、堆、方法区的交互关系方法区的理解栈、堆、方法区的交互关系运行时数据区结构图我们学习的HotSpot用的是左图这种直接指针的方式,但是还有一种句柄池的方式(《深入理解Java虚拟机》),如右图所示方法区的理解JDK1.7之前方法区又叫永久代PermGen space,1.7之后叫做元空间Metaspace, 元空间使用的是本地内存,不使用jvm的内存。方法区设置方法区内存的大小jdk7之后这个指令是无效的,因为已经替换成元空间了jd.
java学习笔记-内存分布-堆 目录堆空间内存分布手动设置堆空间年轻代与老年代内存划分新生代与老年代堆空间比例与设置新生代中Eden与两个Survivor的堆空间比例与设置对象分配过程对象分配过程总结Minor GC、Major GC、Full GC概述年轻代GC(Minor GC)的触发条件老年代GC(Major GC)的触发条件FullGc触发条件堆空间内存分布手动设置堆空间idea-run-edit configuration 选中要设置的类 -Xms:堆.