Welcome 微信登录
编程资源 图片资源库 蚂蚁家优选 PDF转换器

首页 / 操作系统 / Linux

JNI动态注册native方法及JNI数据使用

JNI动态注册native方法及JNI数据使用

前言或许你知道了jni的简单调用,其实不算什么百度谷歌一大把,虽然这些jni绝大多数情况下都不会让我们安卓工程师来弄,毕竟还是有点难,但是我们还是得打破砂锅知道为什么这样干吧,至少也让我们知道调用流程和数据类型以及处理方法,或许你会有不一样的发现。其实总的来说从java的角度来看.h文件就是java中的interface(插座),然后.c/.cpp文件呢就是实现类罢了,然后数据类型和java还是有点出入我们还是得了解下(妈蛋,天气真热不适合生存了)。今天也...
从JVM的角度来看单例模式

从JVM的角度来看单例模式

最近在看jvm,发现随着自己对jvm底层的了解,现在对java代码可以说是有了全新的认识。今天就从jvm的角度来看一看以前自以为很了解的单例模式。了解单例模式的人都知道,单例模式有两种:“饿汉模式”和“懒汉模式”。引用一段网上对这两种模式的介绍:“饿汉模式的特点是加载类时比较慢,但运行时获取对象的速度比较快,线程安全。饿汉式是线程安全的,在类创建的同时就已经创建好一个静态的对象供系统使用,以后不在...
Java动态代理深入解析

Java动态代理深入解析

要想了解Java动态代理,首先要了解什么叫做代理,熟悉设计模式的朋友一定知道在Gof总结的23种设计模式中,有一种叫做代理(Proxy)的对象结构型模式,动态代理中的代理,指的就是这种设计模式。在我看来所谓的代理模式,和23种设计模式中的“装饰模式”是一个东西。23种设计模式中将它们作为两种模式,网上也有些文章讲这两种模式的异同,从细节来看,确实可以人为地区分这两种模式,但是抽象到一定高度后,我认为这两种模式是完全一样的。因此学会了...
Java虚拟机字节码执行引擎

Java虚拟机字节码执行引擎

定义Java虚拟机字节码执行引擎是jvm最核心的组成部分之一,它做的事情很简单:输入的是字节码文件,处理过程是字节码解析的等效过程,输出的是执行结果。在不同的虚拟机实现里,执行引擎在执行java代码的时候可能会有解释执行和编译执行两种选择,也可能两者兼备。运行时栈帧结构java字节码执行引擎在调用和执行方法的时候使用了一种叫做栈帧的数据结构。在jvm的内存结构里,存在这一块称为虚拟机栈的内存区域,虚拟机栈中的元素就是栈帧。每个方法的调用至结束对应着一个栈帧...
Java虚拟机类加载机制

Java虚拟机类加载机制

我是家宝Java虚拟机类加载机制定义虚拟机把描述类的数据从Class文件加载到内存,最终形成可以被虚拟机直接使用的Java类型,这就是虚拟机的类加载机制。类加载的过程类的加载过程分为5个步骤:加载、验证、准备、解析、初始化其中的验证、准备、解析阶段又统称为连接,如下图所示。在这5个阶段中,加载、验证、准备、初始化这4个阶段的顺序是确定的,类的加载过程必须按照这种顺序按部就班地开始,而解析阶段则不一定,为了支持java语言的运行时绑定,它在某些情况下可以在初...
快速理解SpringMVC依赖

快速理解SpringMVC依赖

长期以来都在写SSM框架的项目,却未能深入理解框架的搭建原理,而只是浅薄的理解前辈的架构,然后不断套用,项目做过几个,但框架的内涵却没有把握。小编打算今天从SpringMVC的依赖分析做起,一步步进行系统化学习。从springFramework的官方文档入手。如上为spring框架的的组件构成图。一、核心部分Core Container, 由spring-core, spring-beans, spring-context, spring-context...
Python模块之re正则表达式

Python模块之re正则表达式

一、简单介绍正则表达式是一种小型的、高度专业化的编程语言,并不是python中特有的,是许多编程语言中基础而又重要的一部分。在python中,主要通过re模块来实现。正则表达式模式被编译成一系列的字节码,然后由用c编写的匹配引擎执行。那么正则表达式通常有哪些使用场景呢?比如为想要匹配的相应字符串集指定规则;该字符串集可以是包含e-mail地址、Internet地址、电话号码,或是根据需求自定义的一些字符串集;当然也可以去判断一个字符串集是否符合我们定义的匹...
算法:深度优先算法和广度优先算法

算法:深度优先算法和广度优先算法

算法:深度优先算法和广度优先算法(基于邻接矩阵)1.写在前面 图的存储结构有两种:一种是基于二维数组的邻接矩阵表示法。 另一种是基于链表的的邻接表。 在邻接矩阵中,可以如下表示顶点和边连接关系: 说明: 将顶点对应为下标,根据横纵坐标将矩阵中的某一位置值设为1,表示两个顶点向联接。 图示表示的是无向图的邻接矩阵,从中我们可以发现它们的分布关于斜对角线对称。 我们在下面将要讨论的是下图的两种遍历方法(基于矩阵的): ...
数据结构:从插入排序到希尔排序

数据结构:从插入排序到希尔排序

插入排序(C语言版)说明: 算法思路: 每次从无序表中取出第一个元素,将其插入到有序表中的适当位置,使有序表的长度不断加长,完成排序过程。 n个待排序的元素由一个有序表和一个无序表组成,开始时有序表中只包含一个元素。 流程演示: 蓝色表示由有序表,黑色表示无序表! 分析 元素基本有序时,直接插入排序的时间复杂度接近于O(n) 元素数目n较少时,直接插入排序的效率较高数据结构定义: 首先我们要构建一个顺序表来存放待排...
多线程条件通行工具——CountDownLatch

多线程条件通行工具——CountDownLatch

操作:CountDownLatch(int)构造方法,指定初始计数。await()等待计数减至0。await(long, TimeUnit)在指定时间内,等待计数减至0。countDown()计数减1。getCount()获取剩余计数。例子1:主线程创建了若干子线程,主线程需要等待这若干子线程结束后才结束。例子2:线程有若干任务,分多个线程来完成,需要等待这若干任务被完成后,才继续运行处理。源码:/** * @since 1.5 * @author Dou...
应用Java多线程实现服务器端与多客户端之间的通信

应用Java多线程实现服务器端与多客户端之间的通信

应用Java多线程来实现服务器与多线程之间的通信的基本步骤1、服务器端创建ServerSocket,循环调用accept()等待客户端链接2、客户端创建一个Socket并请求和服务器端链接3、服务器端接受客户端请求,创建socekt与该客户端建立专线链接4、建立链接的socket在一个单独的线程上对话5、服务器继续等待新的链接服务器端Server.javapackage test.concurrent.socket;import java.io.*;imp...
Java类型推断将不再支持可变性规范

Java类型推断将不再支持可变性规范

Java类型推断是一项推荐的Java特性,允许开发人员使用var关键字代替显式的变量类型声明。最近的报道显示,由于社区内无法就区分可变和不可变变量的实现方式达成一致意见,Java类型推断将不再支持使用关键字区分可变的和不可变变量。提议的一些用来表示不可变变量的关键字包括val和let。为了避免对细枝末节的长期讨论,一些这样的例子将被排除以求简洁。尽管JEP并没有透露目标版本,Java 10可能会实现这些功能。为了完整地定义JEP 286的范围,甲骨文公司的...
使用Python自动生成Docker Nginx反向代理配置

使用Python自动生成Docker Nginx反向代理配置

由于在测试环境上用docker部署了多个应用,而且他们的端口有的相同,有的又不相同,数量也比较多,在使用jenkins发版本的时候,不好配置,于是想要写一个脚本,能在docker 容器创建、停止的时候,自动生成nginx反向代理,然后reload nginx我的原则是尽量简单,轻量,内存占用少目标很明确,只要能监听到docker的容器启动/停止事件,即可网上查了一下可以用docker events来监听docker事件,试了一下,发现基本可以满足,于是用p...
Java中常用集合操作

Java中常用集合操作

一、Map 名值对存储的。常用派生类HashMap类添加:put(key,value)往集合里添加数据删除:clear()删除所有remove(key)清除单个,根据k来找获取:size()获取元素的数量get(key)根据key获取该数据containsKey(key)根据key查找集合中有没有该内容,有返回true ,没有返回falsecontainsValue(value)根据value查找集合中有没有改内容,有返回true,没有返回falsepub...
Java抽象、接口 和final

Java抽象、接口 和final

抽象一、抽象类:不知道是具体什么东西的类。 abstract class 类名1.抽象类不能直接new出来。2.抽象类可以没有抽象方法。public abstract class USB { //抽象类//两个抽象方法,抽象类中也可以不写抽象方法public abstract void qidong(); public abstract void tingzhi();//抽象方法不用写{}}3.抽象类中,可以有抽象方法,也可以有非抽象方法。抽象类中还可以有...
Spring事务管理详解及实例

Spring事务管理详解及实例

写这篇文章之前我首先读了《Spring in action》,之后在网上看了一些关于Spring事务管理的文章,感觉都没有讲全,这里就将书上的和网上关于事务的知识总结一下,参考的文章如下:Spring事务机制详解Spring事务配置的五种方式Spring中的事务管理实例详解1 初步理解理解事务之前,先讲一个你日常生活中最常干的事:取钱。 比如你去ATM机取1000块钱,大体有两个步骤:首先输入密码金额,银行卡扣掉1000元钱;然后ATM出1000元钱。这两...
Spring 事务机制详解

Spring 事务机制详解

Spring事务机制主要包括声明式事务和编程式事务,此处侧重讲解声明式事务,编程式事务在实际开发中得不到广泛使用,仅供学习参考。Spring声明式事务让我们从复杂的事务处理中得到解脱。使得我们再也无需要去处理获得连接、关闭连接、事务提交和回滚等这些操作。再也无需要我们在与事务相关的方法中处理大量的try…catch…finally代码。我们在使用Spring声明式事务时,有一个非常重要的概念就是事务属性。事务属性通常由事务的传播...
<< 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 >>