![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java语言
文章平均质量分 92
积跬步以致千里_ylc
一个努力中的Android开发人员
展开
-
java io的知识总结
装饰者模式因为java的IO是基于装饰者模式设计的,所以要了解掌握IO 必须要先清楚什么事装饰者模式(装饰者模式也称为包装模式,其使用一种对客户端透明的方式动态的扩展对象功能。装饰者模式也是继承关系的替代方案之一。装饰者模式是结构型设计模式。重点也在装饰二字)装饰者模式定义: 装饰者模式是指在不必改变原类文件和使用继承的前提下,动态的扩展一个对象的功能,通过创建一个包装对象,也就是装饰者来包裹真实对象。具体实例://1.首先抽象出一个 人 的类 用来表示一个人的穿着public abstra原创 2020-09-01 12:11:55 · 299 阅读 · 0 评论 -
json相关知识总结
JSON定义: JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式作用: 数据标记,存储,传输特点:读写速度快解析简单轻量级独立于语言,平台具有自我描叙性JSON解析:语法: JSON建构于两种结构:“名称/值”对的集合(A collection of name/value pairs)。不同的语言中,它被理解为对象(object),纪录(record),结构(struct),字典(dictionary),哈希表(hash tab原创 2020-08-31 09:04:19 · 204 阅读 · 0 评论 -
序列化知识总结
序列化定义以及相关概念**定义:**将数据结构或对象转换成二进制串的过程。由于在系统底层,数据的传输形式是简单的字节序列形式传递,即在底层,系统不认识对象,只认识字节序列,而为了达到进程通讯的目的,需要先将数据序列化,而序列化就是将对象转化字节序列的过程。相反地,当字节序列被运到相应的进程的时候,进程为了识别这些数据,就要将其反序列化,即把字节序列转化为对象无论是在进程间通信、本地数据存储又或者是网络数据传输都离不开序列化的支持。而针对不同场景选择合适的序列化方案对于应用的性能有着极大的影原创 2020-08-27 17:37:56 · 469 阅读 · 1 评论 -
类加载ClassLoader和双亲委托机制
了解Dalvik和ART**什么是Dalvik:**Dalvik是Google公司自己设计用于Android平台的Java虚拟机。支持已转换为.dex(Dalvik Executable)格式的Java应用程序的运行,.dex格式是专为Dalvik应用设计的一种压缩格式,适合内存和处理器速度有限的系统(移动平台)。DVM的指令集是基于寄存器的,执行效率高(JVM的指令集是基于栈的 更通用,跨平台性好)**什么是ART:**Android Runtime, Android 4.4 中引入的一个开发者选项原创 2020-08-13 15:58:20 · 176 阅读 · 0 评论 -
java的垃圾回收和内存分配
学习垃圾回收机制的意义java和C++等语言的最大技术区别:自动化的垃圾回收机制(GC: Garbage Collection)为什么要了解GC和内存分配策略:GC对应用的性能是有影响的可以写成更优更健壮的代码1)栈:栈的生命周期是跟随线程的,所以一般是不需要关注的2)堆:堆中的对象是垃圾回收的重点3)方法区/元空间:这一个块也会发生垃圾回收,不过这一块的效率比较低,一般也不是应用开发关注的重点通个一个实例来进行垃圾回收的分析实例代码如下 public static void m原创 2020-08-10 16:38:10 · 360 阅读 · 0 评论 -
解析java内存区域
为什么要了解虚拟机JVM不单单只支持Java语言,也支持其他语言(Scala、Kotlin、Groovy等等)写出更好,更健壮的程序 (区块链1.0:比特币,区块链2.0:以太坊,以太坊中提供了EVM的虚拟机,它的实现和JVM类似,基于栈、生成脚本编译成字节码来执行)提高java应用的性能,更好更快速的排除解决相关问题Java SE体系架构虚拟机的发展史1) Hotspot VM 之前输入SUN公司后面被甲骨文公司收购,Hotspot什么意思:热点代码探测技术,及时编译器(发现最有价值的原创 2020-08-10 09:17:31 · 160 阅读 · 0 评论 -
线程池和AsyncTask
线程池1.什么是线程池?为什么要用线程池?Java中的线程池是运用场景最多的并发框架,几乎所有需要异步或并发执行任务的程序都可以使用线程池。线程池就是将线程进行池化,需要运行任务时从池中拿一个线程来执行,执行完毕,线程放回池中。在开发过程中,合理地使用线程池能够带来3个好处:降低资源消耗。通过重复利用已创建的线程降低线程创建和销毁造成的消耗。提高响应速度。当任务到达时,任务可以不需要等到线程创建就能立即执行。假设一个服务器完成一项任务所需时间为:T1 创建线程时间,T2 在线程中执行任务的时间,原创 2020-08-06 15:28:18 · 428 阅读 · 0 评论 -
线程相关的知识归纳整理
CPU的核心数和线程数的关系CPU的核心数和线程数一般是1:1的关系,Intel推出的超线程技术能使电脑的核心数和线程数的比达到 1:2 (基于一个物理核心模拟两个逻辑核心),即是一个4核的CPU同时可运行4个线程,如果使用了超线程技术就可以同时运行8个线程,linux 系统下一个进程最大创建1000个线程,windows系统下一个进程最大创建2000个线程)CPU时间片轮转机制(RR调度)操作系统把所有就绪进程按先入先出的原则排成一个队列。新来的进程加到就绪队列末尾。每当执行进程调度时,进程调度程序原创 2020-08-05 10:52:59 · 274 阅读 · 0 评论 -
解析java的反射和动态代理
反射定义JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性;这种动态获取信息以及动态调用对象方法的功能称为java语言的反射机制。1.理解反射的概念,反射之中包含了一个「反」字,所以了解反射我们先从「正」开始。1.1)一般情况下,我们使用某个类时必定知道它是什么类,是用来做什么的。于是我们直接对这个类进行实例化,之后使用这个类对象进行操作1.2)反射则是一开始并不知道我要初始化的类对象是什么(或者是第三方的类没原创 2020-06-29 17:03:45 · 203 阅读 · 0 评论 -
java 泛型的知识整理
为什么我们需要泛型?通过两段代码我们就可以知道为何我们需要泛型实际开发中,经常有数值类型求和的需求,例如实现int类型的加法, 有时候还需要实现long类型的求和, 如果还需要double类型的求和,需要重新在重载一个输入是double类型的add方法。定义了一个List类型的集合,先向其中加入了两个字符串类型的值,随后加入一个Integer类型的值。这是完全允许的,因为此时list默认...原创 2020-02-15 17:33:09 · 127 阅读 · 0 评论