自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 RegisterNatives()函数映射JNI本地函数与Java本地方法

java 代码 HelloJNI.java class HelloJNI{ native void printHello(); native void printString(String str); static{System.loadLibrary("hellojnimap&...

2020-03-31 21:35:28

阅读数 9

评论数 0

原创 C 程序中运行 Java 类

Java代码 InvocationApiTest.java public class InvocationApiTest{ public static void main(String[) args){ System.out.println(args[O]); }...

2020-03-31 13:17:18

阅读数 13

评论数 0

原创 Java 与 C++ 通过 JNI 交互(Java 主程序)

Java 端代码 JniFuncMain.java public class JniFuncMain{ private static int staticIntField = 300; //加载本地库 jnifunc static { System.loadLibrary("j...

2020-03-31 10:30:30

阅读数 11

评论数 0

原创 Java 通过 JNI 调用 C 函数

第一步:编写 java 代码 class HelloJNI{ //本地方法声明 native void printHello(); native void printString(String str); //加载库 static{Syste...

2020-03-30 12:14:02

阅读数 14

评论数 0

原创 Android Studio 新建项目一直在 Gradle Sync 的问题

如何解决,发现阿里云有镜像,只需要添加相应的url地址就可以下载;打开项目build gradle文件。 buildscript { repositories { maven{ url 'http://maven.aliyun.com/nexus/con...

2019-10-15 15:16:34

阅读数 1335

评论数 0

原创 并查集算法:quick-find、quick-union、优化的 quick-union

目录1. 问题描述2. quick-find3. quick-union4. 优化的 quick-union 1. 问题描述 可以想象一张地图上有很多点,有些点之间是有道路相互联通的,而有些点则没有。如果我们现在要从点 A 走向点 B,那么一个关键的问题就是判断我们能否从 A 走到 B 呢?换句话...

2019-09-04 11:02:36

阅读数 245

评论数 0

原创 HashMap 中散列值的计算

HashMap java 1.8 中的源码: static final int hash(Object key) { int h; return (key == null) ? 0 : (h = key.hashCode()) ^ (h >>&g...

2019-09-02 20:31:03

阅读数 161

评论数 0

原创 LeetCode & 剑指offer 经典题目总结——二叉树

目录1. 重建二叉树 1. 重建二叉树 输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。 解法: /** *...

2019-08-26 16:04:23

阅读数 20

评论数 0

原创 LeetCode & 剑指offer 经典题目总结——递归

目录1. 字符串的排列 1. 字符串的排列 输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。 输入描述: 输入一个字符串,长度不超过9(可能有字符重复),字符只包括大小写...

2019-08-25 21:08:53

阅读数 21

评论数 0

原创 运输层——TCP协议

目录1. 报文格式2. 三次握手3. 四次挥手4. TCP 怎么保证可靠性4.1 TCP 是面向连接的字节流协议4.2 超时重传、应答及数据校验机制4.3 慢启动和拥塞控制4.4 快重传与快恢复 1. 报文格式 序号:占4字节。序号范围是 0 到 2 的32次方-1 ,序号增加到 2的32次方-...

2019-08-22 12:08:40

阅读数 17

评论数 0

原创 应用层——HTTP 协议

目录1. 概述2. HTTP 的报文结构2.1 请求报文2.2 响应报文3. cookie4. session5. HTTP 各版本特点以及 HTTPS 1. 概述 超文本传送协议 HTTP 是一个应用层协议,HTTP 使用了面向连接的 TCP 作为运输层协议,保证了数据的可靠传输。 HTTP 不...

2019-08-19 17:58:46

阅读数 64

评论数 0

原创 应用层——域名系统DNS

域名系统 DNS (Domain Name System)是互联网使用的命名系统,用来把便于人们使用的机器名字转换为 IP 地址。 域名到 IP 地址的解析过程的要点如下:当某一个应用进程需要把主机名解析为 IP 地址时,该应用进程就调用解析程序(resolver), 并成为 DNS 的一个客户...

2019-08-17 16:11:20

阅读数 27

评论数 0

原创 虚拟机类加载机制

整理自《深入理解 Java 虚拟机》。 目录1. 类加载时机2. 类加载的过程2.1 加载2.2 验证2.3 准备2.4 解析2.5 初始化3. 类加载器 1. 类加载时机 虚拟机把描述类的数据从 Class 文件加载到内存,并对数据进行校验、转换解析和初始化。最终形成可以被虚拟机直接使用的...

2019-08-06 17:46:32

阅读数 17

评论数 0

原创 内存分配与回收策略

整理自《深入理解 Java 虚拟机》。 目录1. 对象优先在Eden分配2. 大对象直接进入老年代3. 长期存活的对象将进入老年代4. 动态对象年龄判定5. 空间分配担保 对象的内存分配,大方向上讲,就是在堆上分配,对象主要分配在新生代的 Eden 区上,如果启动了本地线程分配缓冲,将按线程优先在...

2019-08-05 15:49:09

阅读数 14

评论数 0

原创 垃圾收集

整理自《深入理解 Java 虚拟机》。 目录1. 方法区的回收常量池的回收无用的类的回收2. Java 堆的回收3. 垃圾收集算法标记-清除算法复制算法标记-整理算法分代收集算法4. 垃圾收集器 程序计数器、虚拟机栈、本地方法栈这几个区域不需要过多考虑回收问题,因为方法结束或线程结束时,内存自...

2019-08-03 18:00:38

阅读数 31

评论数 0

原创 对象的分配、布局、访问过程

整理自《深入理解 Java 虚拟机》。 目录1. 对象的创建2. 对象的内存布局3. 对象的访问定位 1. 对象的创建 虚拟机遇到一条 new 指令时,将执行以下过程: 检查这个指令的参数是否能在常量池中定位到一个类的符号引用,并且检查这个符号引用代表的类是否已经被加载、解析和初始化过。如果没有...

2019-07-31 11:47:19

阅读数 24

评论数 0

原创 Java 内存区域与内存溢出

目录Java 内存区域1. 程序计数器2. 虚拟机栈3. 本地方法栈4. 堆5. 方法区内存溢出1. 堆溢出2. 虚拟机栈和本地方法栈溢出 Java 内存区域 Java 虚拟机在执行 Java 程序的过程中会把它所管理的内存划分为各个不同的数据区域,包括以下几个部分: 1. 程序计数器 ...

2019-07-31 10:58:26

阅读数 19

评论数 0

转载 Java 网络通信模型 BIO、NIO、AIO

目录1. BIO 参照 UNIX 五大 I/O 模型来理解。 1. BIO BIO 就是传统的 java.io 包,它是基于流模型实现的,交互的方式是同步、阻塞方式,也就是说在读入输入流或者输出流时,在读写动作完成之前,线程会一直阻塞在那里,它们之间的调用是可靠的线性顺序。它的优点就是代码比...

2019-07-29 17:39:46

阅读数 17

评论数 0

原创 操作系统之 UNIX I/O 模型

目录1. 基本概念2. 五大 I/O 模型2.1 阻塞 I/O2.2 非阻塞 I/O 模型2.3 I/O 复用模型2.4 信号驱动式 I/O 模型2.5 异步 I/O 模型3. 5大 I/O 模型比较 1. 基本概念 同步:所谓同步,就是在发出一个功能调用时,在没有得到结果之前,该调用就不返回。...

2019-07-28 21:18:58

阅读数 24

评论数 0

原创 操作系统之死锁

目录1. 产生死锁的必要条件2. 处理方法 1. 产生死锁的必要条件 互斥:任何时刻只能有一个进程使用一个资源实例。 持有并等待:进程保持至少一个资源,并正在等待获取其他进程持有的资源。 非抢占:资源只能在进程使用后自愿释放。 循环等待。 2. 处理方法 鸵鸟策略:把头埋在沙子里,假装根本没发...

2019-07-28 20:20:24

阅读数 19

评论数 0

原创 操作系统之进程间通信

目录1. 信号2. 管道3. 消息队列4. 共享内存5. 套接字 1. 信号 进程间的软件中断通知和处理机制。 信号的接收处理: 捕获:执行进程指定的信号处理函数被调用。 忽略:执行进程指定的缺省处理。 屏蔽:禁止进程接收和处理信号。 不足:传送的信息量小,只有一个信号类型。 2. 管道 进程...

2019-07-28 18:49:58

阅读数 19

评论数 0

原创 操作系统之进程同步

目录1. 同步2. 临界区3. 信号量(semaphore)3.1 信号量实现互斥访问3.2 信号量实现同步等待3.3 信号量实现生产者消费者问题4. 管程5. 经典同步问题之哲学家就餐问题6. 读者-写者问题 1. 同步 协调多线程对共享数据的访问,任何时刻只能有一个线程执行临界区代码。 2. ...

2019-07-28 18:31:30

阅读数 37

评论数 0

原创 操作系统之调度算法

目录1. 比较调度算法的准则2. 调度算法2.1 先来先服务算法(FCFS)2.2 短进程优先算法(SPN)2.3 最高响应比优先算法2.4 最短剩余时间优先算法(SRT)2.5 时间片轮转算法2.6 优先级调度算法2.7 多级队列算法2.8 多级反馈队列算法2.9 公平共享调度算法 1. 比较调...

2019-07-28 12:07:26

阅读数 43

评论数 0

原创 操作系统之进程与线程

目录1. 进程2. 线程3. 进程和线程的关系 1. 进程 概念:进程是指一个具有一定独立功能的程序在一个数据集合上的一次动态执行过程,进程是资源分配的基本单位。 组成:包含了正在运行的一个程序的所有状态信息。 特点: 动态性:可动态地创建、结束进程。 并发性:进程可以被独立调度并占用处理机执行...

2019-07-28 11:05:20

阅读数 17

评论数 0

原创 操作系统之内存管理

目录1. 功能2. 管理方式2.1 重定位2.2 分段2.3 分页2.4 段页式2.5 虚拟存储2.5.1 基本特征2.5.2 缺页异常(中断)的处理流程2.5.3 页面置换算法2.5.3.1 局部页面置换算法1. 最优算法(OPT,optimal)2. 先进先出算法(First-In First...

2019-07-28 10:42:55

阅读数 29

评论数 0

原创 操作系统特征、内核态与用户态

目录1. 操作系统的特征2. 内核态与用户态3. 中断、异常和系统调用 1. 操作系统的特征 并发:宏观上计算机系统在一段时间内能同时存在多个运行的程序,需要OS管理和调度。 共享:共享是指系统中的资源可以被多个并发进程共同使用。有两种共享方式:互斥共享和同时共享。 虚拟:虚拟技术把一...

2019-07-26 18:36:52

阅读数 32

评论数 0

原创 浮点型商业运算中丢失精度问题

计算机用二进制存储数据,用有限位去近似表示一个浮点数会产生精度问题。为了能精确的表示、计算浮点数,Java提供了BigDecimal类。 注意,在创建 BigDecimal 对象时,一定要使用String对象作为构造器参数,而不是直接使用double 数字。原因: public BigDecima...

2019-07-03 11:30:28

阅读数 29

评论数 0

原创 泛型

1. 类型擦除 虚拟机中没有泛型,只有普通的类和方法。定义一个泛型类型,会进行类型擦除,如: public class Pair<T> { private T first; private T second; public Pair() { firs...

2019-07-03 10:36:47

阅读数 17

评论数 0

原创 String、StringBuilder、StringBuffer 的区别

String 对象是不可变对象(显然线程安全),String 对象一旦创建之后就不可更改了。Java 中对 String 对象进行的操作实际上是一个不断创建新的对象并且将旧的对象回收的一个过程,所以执行速度很慢。 StringBuffer 线程安全的可变字符序列:对 StringBuffer对象本...

2019-06-27 21:20:31

阅读数 49

评论数 0

原创 支付宝扫码付模块

按照支付宝官方开发文档,将支付订单信息发送给支付宝网关,支付宝服务器接收到信息后进行校验,校验成功后会将返回信息返回给指定的地址。 要让支付宝访问到本机,需要利用 NATAPP 工具进行内网穿透,将本地服务器地址、端口映射到外网域名上。注意这里使用的免费隧道服务,每次启动 NATAPP 域名会变,...

2019-06-24 20:55:58

阅读数 187

评论数 0

原创 上传图片到 FTP 服务器,nginx 映射图片资源

后端将用户上传的图片先上传到 Tomcat 的 /opt/apache-tomcat-7.0.73/webapps/ROOT/upload 路径下,然后将其上传到 FTP 服务器的 img/ 目录下,最后删除 Tomcat 上的文件,返回给前端的是 FTP 服务器的地址+文件名(如:http://...

2019-06-15 16:44:59

阅读数 166

评论数 0

原创 后端得到get请求的参数中文乱码

测试后台分类模块时,采用 get 方法发送新增的品类名,tomcat接收到的参数是乱码。后来发现 tomcat 的 配置文件 /opt/apache-tomcat-7.0.73/conf/server.xml 中的 URIEncoding=“UTF-8” 错配置成了 “UTF_8”。 ...

2019-06-12 22:00:09

阅读数 190

评论数 0

原创 x-www-form-urlencoded

使用chrome插件 Resetlet 测试用户模。发送 post 请求时需要在 HTTP HEADERS 加上 Content-Type 属性,值为 x-www-form-urlencoded 。 HTTP 请求分为三个部分:状态行、请求头、消息主体。 协议规定 POST 提交的数据必须放在...

2019-06-12 10:47:06

阅读数 83

评论数 0

原创 2020校招笔试题

目录1. 华为实习笔试:2.vivo校招提前批笔试: 1. 华为实习笔试: n个糖果分给k个小朋友,共有几种分法,枚举每种分法。 顺时针旋转n阶方阵,输出旋转m次后的结果。 两段文字,第一段是在第二段上进行增加单词,删除单词,改变单词得来。每个增、删、改操作算一次校对,求最少校对次数。...

2019-06-05 10:31:22

阅读数 105

评论数 0

原创 LeetCode & 剑指offer 经典题目总结——查找

目录1.搜索旋转排序数组 1.搜索旋转排序数组 假设按照升序排序的数组在预先未知的某个点上进行了旋转。 ( 例如,数组 [0,1,2,4,5,6,7] 可能变为 [4,5,6,7,0,1,2] )。 搜索一个给定的目标值,如果数组中存在这个目标值,则返回它的索引,否则返回 -1 。 你可...

2019-05-30 11:48:54

阅读数 121

评论数 0

转载 java I/O体系

转自:https://www.cnblogs.com/ylspace/p/8128112.html Java中IO流的体系结构: Java流类的类结构图:

2019-05-08 20:04:50

阅读数 26

评论数 0

转载 序列化与反序列化

https://www.cnblogs.com/xdp-gacl/p/3777987.html

2019-05-07 11:40:17

阅读数 14

评论数 0

转载 Mybatis Mapper接口动态代理实现原理

摘自《Mybatis从入门到精通》(刘增辉) 通过上面的学习,大家可能会有一个疑问,为什么 Mapper 接口没有实现类却能被正常调用呢? 这是因为 MyBaits 在 Mapper 接口上使用了动态代理的一种非常规的用法,熟悉这种动态代理的用法不仅有利于理解 MyBatis 接口和 XML 的关...

2019-05-06 21:12:53

阅读数 1020

评论数 0

原创 反射

Class.forName()方法 在jdbc连接数据库中的应用 在使用jdbc方式连接数据库时,为什么要执行Class.forName(‘驱动类名’)方法了:将驱动类的class文件装载到内存中,并且形成一个描述此驱动类结构的Class类实例,并且初始化此驱动类,这样jvm就可以使用它了,这就是...

2019-05-06 15:53:51

阅读数 12

评论数 0

原创 LeetCode & 剑指offer 经典题目总结——字符串

目录1.验证回文串 1.验证回文串 给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。 说明:本题中,我们将空字符串定义为有效的回文串。 示例 1: 输入: “A man, a plan, a canal: Panama” 输出: true 示例...

2019-05-05 11:24:34

阅读数 243

评论数 0

提示
确定要删除当前文章?
取消 删除