java
文章平均质量分 89
小吴先森
这个作者很懒,什么都没留下…
展开
-
JNI基础(一)
(一) 什么是JNI?JNI官网介绍Java调用C/C++在Java语言里面本来就有的,并非Android自创的,即JNI。JNI就是Java调用C++的规范。当然,一般的Java程序使用的JNI标准可能和android不一样,Android的JNI更简单。JNI,全称为Java Native Interface,即Java本地接口,JNI是Java调用Native 语言的一种特性。通过JNI可以使得Java与C/C++机型交互。即可以在Java代码中调用C/C++等语言的代码或者在..转载 2021-09-27 22:32:18 · 495 阅读 · 0 评论 -
JNI基础(二)
JNI 开发流程主要分为以下 6 步:编写声明了 native 方法的 Java 类 将 Java 源代码编译成 class 字节码文件 用 javah -jni 命令生成.h头文件(javah 是 jdk 自带的一个命令,-jni 参数表示将 class 中用native 声明的函数生成 JNI 规则的函数) 用本地代码实现.h头文件中的函数 将本地代码编译成动态库(Windows:\*.dll,linux/unix:\*.so,mac os x:\*.jnilib) 拷贝动态库至 java原创 2021-09-28 13:42:42 · 229 阅读 · 0 评论 -
java实用工作日常集
SpringBoot之双(多)MongoTemplate配置 | 尘杂原创 2021-12-07 20:40:33 · 100 阅读 · 0 评论 -
Java中volatile关键字的最全总结
一、简介volatile是Java提供的一种轻量级的同步机制。Java语言包含两种内在的同步机制:同步块(或方法)和volatile变量,相比于synchronized(synchronized通常称为重量级锁),volatile更轻量级,因为它不会引起线程上下文的切换和调度。但是volatile变量的同步性较差(有时它更简单并且开销更低),而且其使用也更容易出错。二、并发编程的3...转载 2020-03-25 19:11:39 · 159 阅读 · 0 评论 -
JAVA Future类详解
1. Future的应用场景在并发编程中,我们经常用到非阻塞的模型,在之前的多线程的三种实现中,不管是继承thread类还是实现runnable接口,都无法保证获取到之前的执行结果。通过实现Callback接口,并用Future可以来接收多线程的执行结果。Future表示一个可能还没有完成的异步任务的结果,针对这个结果可以添加Callback以便在任务执行成功...转载 2020-03-20 19:48:41 · 363 阅读 · 0 评论 -
Java必要准确区别之数组Array和集合list、map、set
1 其实:以为能区分的 实际上还在模糊世间上本来没有集合,(只有数组参考C语言)但有人想要,所以有了集合 有人想有可以自动扩展的数组,所以有了List 有的人想有没有重复的数组,所以有了set 有人想有自动排序的组数,所以有了TreeSet,TreeList,Tree** 而几乎有有的集合都是基于数组来实现的. 因为集合是对数组做的封装,所以,数组永远比任何一个集合要快...转载 2020-03-20 16:24:24 · 463 阅读 · 0 评论 -
Java并发编程基础
Java并发编程的艺术笔记并发编程的挑战 Java并发机制的底层实现原理 Java内存模型 Java并发编程基础 Java中的锁的使用和实现介绍 Java并发容器和框架 Java中的12个原子操作类介绍 Java中的并发工具类 Java中的线程池 Executor框架目录线程的简介 启动和终止线程 线程间通信 小结线程的简介 什么是线程 线程是操作系统能...转载 2020-03-20 16:23:04 · 73 阅读 · 0 评论 -
Java 字符串拼接 五种方法的性能比较分析
> 字符串拼接一般使用“+”,但是“+”不能满足大批量数据的处理,Java中有以下五种方法处理字符串拼接,各有优缺点,程序开发应选择合适的方法实现。1. 加号 “+”2. String contact() 方法3. StringUtils.join() 方法4. StringBuffer append() 方法5. StringBuilder append() 方法&...转载 2020-03-20 13:47:19 · 338 阅读 · 0 评论 -
消息中间件企业级应用
众所周知,消息中间件是大型分布式系统中不可或缺的重要组件。它使用简单,却解决了不少难题,比如异步处理,系统藕合,流量削锋,分布式事务管理等。实现了一个高性能,高可用,高扩展的系统。本章通过介绍消息中间件的应用场景,消息中间件的传输模式,ActiveMQ快速入门三个方面来对消息中间件进行入门介绍。还在等什么,赶快来学习吧!说明:消息中间件非常强大,值得我们认真去学习和使用。完整代码请异步git...转载 2019-03-21 11:04:03 · 80 阅读 · 0 评论 -
Elasticsearch-基础介绍及索引原理分析
最近在参与一个基于Elasticsearch作为底层数据框架提供大数据量(亿级)的实时统计查询的方案设计工作,花了些时间学习Elasticsearch的基础理论知识,整理了一下,希望能对Elasticsearch感兴趣/想了解的同学有所帮助。 同时也希望有发现内容不正确或者有疑问的地方,望指明,一起探讨,学习,进步。介绍Elasticsearch 是一个分布式可扩展的实时搜索和分析引擎,一...转载 2018-11-10 16:39:58 · 81 阅读 · 0 评论 -
【转】关于BeanUtils.copyProperties的用法和优缺点
一、简介: BeanUtils提供对Java反射和自省API的包装。其主要目的是利用反射机制对JavaBean的属性进行处理。我们知道,一个JavaBean通常包含了大量的属性,很多情况下,对JavaBean的处理导致大量get/set代码堆积,增加了代码长度和阅读代码的难度。二、用法: BeanUtils是这个包里比较常用的一个工具类,这里只介绍它的copyProperties(...转载 2018-10-14 23:08:34 · 1493 阅读 · 0 评论 -
Java对象内存占用分析
本文深入分析并验证了不同Java对象占用内存空间大小的情况。对于不同的jvm实现,Java对象占用的内存空间大小可能不尽相同,本文主要分析HotSpot jvm中的情况,实验环境为64位window10系统、JDK1.8,使用JProfiler进行结论验证。Java对象内存布局Java对象的内存布局包括:对象头(Header),实例数据(Instance Data)和补齐填充(Padding)。对...转载 2018-04-04 08:44:25 · 451 阅读 · 1 评论 -
Map占用内存大小评估
public class test { private static java.util.HashMap<String, String> needQueryResProductList = new java.util.HashMap<String, String>(); public static void main(String[] args) throw...转载 2018-04-03 18:47:07 · 9761 阅读 · 2 评论 -
Spring Boot 本地jar包
Spring Boot 本地jar包一:问题场景 在开发过程中,我们有时会遇到Maven中央库没有的jar包,比如公司自己开发的而又没有放入公司私库的jar包,这时就不能通过三围在pom中直接引入。那么怎么在项目中引入这些本地或第三方jar包呢? 二:解决方法 常用的解决方法主要有两种。 第一种是将本地jar包安装在本地maven库。这种方法简单方便,以后其他项目需要引入时不需要...转载 2018-02-23 19:02:13 · 509 阅读 · 0 评论 -
在MAC系统安装Apache Tomcat的详细步骤(.sh command not found?)
第一步:下载Tomcat http://tomcat.apache.org/index.html选择一个版本下载zip包第二步:解压,然后终端 cd切换到文件的bin目录 cd /Users/xx/Downloads/apache-tomcat-7.0.76/bin第三步:启动tamcat;命令:./startup.sh出现如下提示,需要对此目录进行权限设置:-bash: ./startup...转载 2018-02-22 17:26:57 · 317 阅读 · 0 评论 -
java1.8安装
安装之前先检查一下系统有没有自带open-jdk命令:rpm -qa |grep javarpm -qa |grep jdkrpm -qa |grep gcj如果没有输入信息表示没有安装。如果安装可以使用rpm -qa | grep java | xargs rpm -e --nodeps 批量卸载所有带有Java的文件 这句命令的关键字是j转载 2017-12-28 13:51:48 · 295 阅读 · 0 评论