
Java-基础
文章平均质量分 93
Xander_Wang
这个作者很懒,什么都没留下…
展开
-
总结笔记(六) - 网络编程总结
文章目录网络编程总结网络协议总览网络协议分层网络协议框架各层协议之间的区别合联系HTTP 协议HTTP 协议是什么HTTP 协议是如何工作的TCP/IP 的三次握手和四次挥手三次握手四次挥手如何理解 HTTP 协议是无状态的,无连接的HTTP 各个版本比较GET 和 POST 的区别HTTPS 协议原理HTTP 和 HTTPS 的区别网络开源库框架有哪些okhttp 源码解析如何优化网络网络编程总结网络协议总览网络协议分层网络协议框架各层协议之间的区别合联系应用层: Http WebSock原创 2021-01-05 22:48:44 · 134 阅读 · 0 评论 -
总结笔记(五) - Java 线程总结
文章目录Java 线程总结Java 线程安全什么是线程安全VolatileJava 变量的读写volatile 如何保持内存可见性volatile 如何防止指令重排序线程安全的实现方式synchronized锁膨胀过程Lock + volatileJava 里锁的分类常用锁的原理分析线程间通信线程池Java 线程总结Java 线程安全什么是线程安全在上一节的 Java 内存模型里面说到,程序在运行的时候,线程并不是直接从主存里面,而是先从主内存拷贝一份到工作内存(线程私有的),然后执行代码,最后把计原创 2021-01-05 22:47:46 · 223 阅读 · 0 评论 -
总结笔记(四) - JVM 总结
文章目录JVM 总结什么是 JVMJVM 在运行程序的时候,这个程序在 JVM 里面是怎么样的?一个 class 字节码文件里,类的结构是如何的?JVM 是如何找到一个类的JVM 加载类的时候,有哪些过程呢?Java 内存模型JVM GC四种索引GC 的类型回收算法DVM 和 JVM 区别,或者说是如何优化的JVM 总结什么是 JVMJVM 是 Java 虚拟机,是一个虚拟出来的计算机,仿真模拟计算机。JVM 在运行程序的时候,这个程序在 JVM 里面是怎么样的?JVM 的内存主要分为五块程原创 2021-01-05 22:45:59 · 108 阅读 · 0 评论 -
总结笔记(三) - Java 反射和注解总结
文章目录反射总结什么是反射反射有什么用反射的常用方法介绍Class 常用方法介绍Method 常用方法介绍Filed 常用方法介绍常用的场景动态配置动态代理hook 框架注解总结什么是注解注解定义注解的应用场景反射总结什么是反射反射是 Java 语言的一个特性,就是在程序运行状态中,对于任何一个类,都可以通过反射知道这个类所有的方法和属性。对于任何一个实例,都可以调用这个实例的任何方法和属性。这个在运行时动态获取类或者实例的属性和方法,动态调用属性和方法的特性就叫反射。反射有什么用从特性可以看出,原创 2020-09-07 21:37:13 · 155 阅读 · 0 评论 -
总结笔记(二) - Java 集合总结
文章目录Java 集合总结Java 有哪些集合,继承关系是怎么样的平时常用的集合有哪些ListArrayListLinkedListSetHashSetTreeSetMapHashMapLinkedHashMapHashtableTreeMap碰到的常见问题线程安全问题ConcurrentHashMap1.7 实现原理是:1.8 实现原理是:Java 集合总结Java 有哪些集合,继承关系是怎么样的平时常用的集合有哪些CollectionList 可以重复添加元素ArrayListLi原创 2020-07-04 16:16:35 · 258 阅读 · 0 评论 -
总结笔记(一) - 泛型总结
文章目录泛型总结泛型是什么?Java 是如何实现泛型的?什么是泛型的类型擦除呢?泛型的通配符 `?`、`extends` 和 `super`?通配符extends 通配符super 通配符小结参考资料泛型总结泛型是什么?简单说就是类型参数化,什么意思呢?参数化的意思就是我们在定义的时候不知道具体的值,我们在到我们实际运行的时候才知道具体的值。类型参数化就是具体类型在定义的时候不知道,在实际运行的时候是确定的某一个类型。Java 是如何实现泛型的?泛型是很多高级语言都有的特性。根据定义,泛型在运行时原创 2020-07-01 21:56:32 · 197 阅读 · 0 评论 -
JVM 内存模型学习笔记
JVM 内存模型学习文章目录JVM 内存模型学习概述为什么需要学习 JVM 内存模型5 块内存的分类和区别程序计数区虚拟机栈局部变量表操作数栈动态链接方法出口本地方法栈方法区类的常量池运行时常量池字符串常量池堆拓展String 的一些关于内存的问题常用类型及其包装类参考资料概述为什么需要学习 JVM 内存模型为什么需要学习 JVM 内存模型呢?很简单,同样的需求,不同的人实现下来,最后的效果不一样,有的人写得程序很卡顿,有的人写的程序就很流畅。这之间有什么差距呢?程序写的好的人,一般对一些细节了解原创 2020-06-17 14:15:47 · 221 阅读 · 0 评论 -
linux Java 环境配置
首先修改 ~/.bashrc 文件,添加如下内容。JAVA_HOME=/usr/share/jdk1.6.0_35(替换为自己的jdk安装路径)PATH=$JAVA_HOME/bin:$PATHCLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jarexport JAVA_HOMEexport PATHexport CLASSPA原创 2017-01-12 14:44:48 · 294 阅读 · 0 评论 -
Java 静态语句块 语句块 构造方法的调用顺序
最近对 ‘Java 静态语句块 语句块 构造方法的调用顺序’ 这个问题有点模糊,跑了段代码用来帮助理解。代码如下父类public class Parent { static { System.out.println("parent static block"); } { System.out.println("parent block");原创 2016-12-29 23:08:06 · 514 阅读 · 0 评论 -
小工具集合
Json解析GsonGson是谷歌开发的一个解析json的工具,具体的介绍这里不做详细的说明,贴一下Gson的下载地址吧 Gson下载 Gson使用方法fastjsonfastjson是阿里巴巴公司开发的一款解析json工具,目前据说是最快的,这个没测试过,应该很不错,要不也不会那么多人推荐。同样这里不做详细的介绍,主要记录下载地址和一些相关的博客 fastjson下载 fastjson使用原创 2015-06-16 23:30:31 · 474 阅读 · 0 评论 -
Java -- 算法小结之快速排序
快排算法,是很经典的一种算法,大概有这么几步1 以需要排序范围第一个元素为关键值。2 先从右往左查找,直到第一个小于关键值的元素,将此元素和关键值交换,并记下下标。3 然后从左往右查找,直到找到第一个大于关键值的元素,将此元素和关键元素交换,记下下标。4 以刚刚记录的下标为基准,重复2-3两步,直到关键值左边的都小于关键值,右边的都大于关键值。5 分别对关键值左边部分,和右边部分做快速排序原创 2015-06-23 23:09:28 · 378 阅读 · 0 评论 -
Java -- 算法小结之插入排序
插入排序插入排序的逻辑比较简单,就是将一个数据插入到已有的一个有序的数组中,使新的数组依然有序。 需要注意的是需要再有序的数组中找到合适的插入位置以及保证新的数组依然有序。下面是我用java实现的排序,代码已经上传到我的GitLab··· Javapublic class InsertSort { /** * 交换数组里面的2个元素 * @param list原创 2015-06-25 22:26:09 · 484 阅读 · 0 评论 -
Java -- 算法小结之希尔排序
希尔排序是在插入排序的基础之上做的优化。那什么是希尔排序呢? 我们知道,再插入排序的时候,如果这个数组基本是有序的,那么数组间数值的移动就会少很多,那么相应的效率就会提高。 希尔的规则是将已有的数组分成几个长度比较小的数组,因为再长度比较小的数组里,数组基本是有序的。 但是有一个缺点就是希尔排序是不稳定的。我们看一下如何具体的来做希尔排序,源码已经上传到我的GitHub(1)按照给定的步长来原创 2015-06-28 10:14:11 · 526 阅读 · 0 评论 -
Android混淆之ProGuard
先简单介绍下ProGuard,ProGuard是一款用来混淆java源码的工具。由于java的一次编写,到处运行的特性,生成的字节码很容易被反编译,很容易将自己的代码暴露,混淆器就是用来解决这个问题的。 将java源码的类拆分为几个没有实际意义的名字的类,并将类的属性和方法也重命名为无实际意义的属性名和方法。这个就是混淆器的基本原理。 我们今天要说的ProGuard就是这样的一款混淆器。 网上原创 2015-07-20 21:56:15 · 547 阅读 · 0 评论 -
Java 反射总结和使用
什么是反射官方有段介绍是这么说的 Reflection is commonly used by programs which require the ability to examine or modify the runtime behavior of applications running in the Java virtual machine.什么意思呢,就是说反射通常用于需要能够检查原创 2016-12-07 23:56:22 · 484 阅读 · 0 评论