自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(83)
  • 收藏
  • 关注

转载 Java static作用及加载顺序

在java中,static可以修饰成员变量、成员方法、代码块、内部类。 static修饰成员变量,可以达到全局变量的效果(Java没有全局变量的概念),当一个类定义了static变量,其实就是申请一个内存地址,所有该类的对象共享这个静态成员变量。       静态变量引用方式:类名.静态变量,对象名.静态变量。 这里区分下:静态变量和实例变量。静态变量:用static修饰,属于类...

2018-07-28 14:12:00 251

原创 Java中静态(static)成员何时才会初始化

先谈staticstatic方法就是没有this的方法。在static方法的内部不能调用非静态方法,反过来倒是可以的,而且可以在没有创建任何对象的前提下,仅仅通过类本身来调用static方法。这实际上正是static方法的主要用途。它很像全局方法。Java中禁止使用全局方法,但你在类中置入static方法就可以访问其它static方法和static域 —摘抄自《Java编程思想》第四版86...

2018-07-28 14:10:38 10447 1

转载 jni-jobject操作对象

前言jni中除了基本数据类型和数组之外,都是jobject类型的变量。jni提供了一系列的方法来操作jobject。 下面的示例都是根据TestObject.java来进行的。public class TestObject { private String firstName; private String secondName; public TestObject(S...

2018-07-25 21:36:09 4645

转载 Android JNI之JAVA与C++对象建立对称关联

Android JNI之JAVA与C++对象建立对称关联(JNI优化设计,确保JNI调用的稳定性) 转载请声明:原文转自:http://www.cnblogs.com/xiezie/p/5930503.html Android JNI之JAVA与C++对象建立对称关联1.JAVA对象持有C++对象的指针在JAVA类中创建一个int类型的变量(如int mObj),用于储存C++对象...

2018-07-25 20:48:11 282

转载 JNI 各种优化方案

转自:  http://www.ibm.com/developerworks/cn/java/j-jni/最好看原版吧,排版非常好,这里粘贴是为了备份一下!   Java 环境和语言对于应用程序开发来说是非常安全和高效的。但是,一些应用程序却需要执行纯 Java 程序无法完成的一些任务,比如:JNI 的发展JNI 自从 JDK 1.1 发行版以来一直是 Java 平台的...

2018-07-25 17:57:08 1458

转载 (JNI)The Invocation API

原文地址https://www.jianshu.com/p/e6e78bedd2e8译文地址:http://docs.oracle.com/javase/1.5.0/docs/guide/jni/spec/invocation.html#wp9502<h1>第五章<h1>Invocation API允许软件供应商将Java VM加载到任意本机应用程序中。供应...

2018-07-25 11:38:41 204

原创 java加载so包,undefined symbol处理方法

  undefined symbolc++filt

2018-07-24 21:44:32 1848

转载 java finalize方法总结、GC执行finalize的过程

java finalize方法总结、GC执行finalize的过程分类: Java2013-10-06 16:42 73人阅读 评论(0) 收藏 举报finalizejavajvm目录(?)[+] 注:本文的目的并不是鼓励使用finalize方法,而是大致理清其作用、问题以及GC执行finalize的过程。 1. finalize的作用 finalize()...

2018-07-24 13:54:12 160

转载 在 JNI 编程中避免内存泄漏

https://www.ibm.com/developerworks/cn/java/j-lo-jnileak/ JNI 编程简介JNI,Java Native Interface,是 native code 的编程接口。JNI 使 Java 代码程序可以与 native code 交互——在 Java 程序中调用 native code;在 native code 中嵌入 Java ...

2018-07-23 20:33:29 158

转载 线程安全的AtomicLong使用

atomiclong 可以理解是加了synchronized的long。public class Counter { private static long counter = 0; public static long addOne(){ return ++counter; } } 这个类在多线程的环境下就会有问题了,假如开多...

2018-07-23 11:40:16 926

转载 闲谈System.nanoTime()函数

平时产生随机数时我们经常拿时间做种子,比如用System.currentTimeMillis的结果,但是在执行一些循环中使用了System.currentTimeMillis,那么每次的结果将会差别很小,甚至一样,因为现代的计算机运行速度很快。后来看到java中产生随机数函数以及线程池中的一些函数使用的都是System.nanoTime,下面说一下这2个方法的具体区别。         ...

2018-07-22 17:30:56 418

转载 TimeUnit用法

https://blog.csdn.net/lovelichao12/article/details/76080888 TimeUnit是java.util.concurrent包下面的一个类,表示给定单元粒度的时间段1、主要作用   时间颗粒度转换   延时2、常用的颗粒度   TimeUnit.DAYS //天 TimeUnit.HOURS...

2018-07-22 12:43:59 1675

转载 Java 中的异常和处理详解

http://www.importnew.com/26613.html 简介程序运行时,发生的不被期望的事件,它阻止了程序按照程序员的预期正常执行,这就是异常。异常发生时,是任程序自生自灭,立刻退出终止,还是输出错误给用户?或者用C语言风格:用函数返回值作为执行状态?。Java提供了更加优秀的解决办法:异常处理机制。异常处理机制能让程序在异常发生时,按照代码的预先设定的异常处理...

2018-07-20 21:11:38 150

转载 boost::program_options 用法详解

一 program options是一系列pair//linux系统下,编译选项需加上 -lboost_program_options#include <iostream>#include <string>#include <boost/program_options.hpp>namespace bpo = boost::program_op...

2018-07-20 17:33:26 241

转载 快速掌握 命令行参数配置——program_options

引言命令行参数配置是一个很重要的功能,因为它能帮助用户更加方便的与程序参数进行交互,而且易于编写脚本文件来控制程序。我想大家都不愿意修改几个参数,还得打开Visual Studio或者源代码去修改参数然后再重新编译这么麻烦吧 :(Boost库中的 program_options可以很方便的形成命令行参数配置,下面是一个30分钟,快速掌握 program_options 的教程。prog...

2018-07-20 17:28:21 659

转载 boost::program_options 用法详解

boost::program_options 用法详解简介program options是一系列pair<name,value>组成的选项列表,它允许程序通过命令行或配置文件来读取这些参数选项.主要组件program_options的使用主要通过下面三个组件完成:组件名 作用 options_description(选项描述器) 描述当前的程序定...

2018-07-20 17:26:49 206

转载 秒的换算:ms(毫秒),μs(微秒),ns(纳秒),ps(皮秒)

皮秒皮秒,符号ps(英语:picosecond ).1皮秒等于一万亿分之一秒(10-12秒)1,000 皮秒 = 1纳秒 1,000,000 皮秒 = 1微秒 1,000,000,000 皮秒 = 1毫秒 1,000,000,000,000 皮秒 = 1秒纳秒纳秒,符号ns(英语:nanosecond ).1纳秒等于十亿分之一秒(10-9秒)1 纳秒 = 1000皮秒 1,0...

2018-07-20 17:24:57 20121

转载 你真的了解volatile关键字吗?

http://www.importnew.com/24082.html 一、Java内存模型想要理解volatile为什么能确保可见性,就要先理解Java中的内存模型是什么样的。Java内存模型规定了所有的变量都存储在主内存中。每条线程中还有自己的工作内存,线程的工作内存中保存了被该线程所使用到的变量(这些变量是从主内存中拷贝而来)。线程对变量的所有操作(读取,赋值)都必须在工作内...

2018-07-20 14:58:46 122

转载 struct timespec 和 struct timeval

time()提供了秒级的精确度 .1、头文件 <time.h> 2、函数原型 time_t time(time_t * timer) 函数返回从TC1970-1-1 0:0:0开始到现在的秒数 用time()函数结合其他函数(如:localtime、gmtime、asctime、ctime)可以获得当前系统时间或是标准时间。如果需要更高的时间精确度,就需要struct ...

2018-07-19 15:31:05 207

转载 c++ 时间类型详解(time_t和tm)

原文:http://blog.csdn.net/love_gaohz/article/details/6637625Unix时间戳(Unix timestamp),或称Unix时间(Unix time)、POSIX时间(POSIX time),是一种时间表示方式,定义为从格林威治时间1970年01月01日00时00分00秒起至现在的总秒数。Unix时间戳不仅被使用在Unix 系统、类Unix系...

2018-07-19 15:14:38 1592

转载 Boost1.58—— thread组件使用说明

1、系统环境Ubuntu14.04 LTS g++-4.82、示例代码example.cpp#include <boost/thread.hpp> #include <iostream> void task1(){ // do stuff std::cout << "This is task1!" << s...

2018-07-18 15:21:54 391

原创 Python.h:No such file or directory

出现No such file or directory的错误,有两种情况,一种是真的没有Python.h这个文件,一种是Python的版本不对,可以进入/usr/include/文件夹下的Python2.x文件夹里查找是否有Python.h这个文件。如果是第一种情况,那么需要安装Python-dev这个包,(sudo apt-get install python-dev)...

2018-07-18 14:49:19 6863

转载 linux下安装boost及boost::thread的使用

1.0 前言由于项目需要,初次接触boost,难免要面临安装调试的问题。由于boost库的发展还比较短,网上的中文资料也比较少,自己走了不少弯路,在这里把自己检验过的正确的方法写下来,希望能对后面的学习者有所帮助。本文主要参考了boost.org中的get start文档和Stack Overflow网站中的部分内容。1.1 环境Ubuntu 10.04, boost 1.49(...

2018-07-18 14:44:23 2151

转载 1秒等于多少微妙,纳秒

1秒=1000毫秒(ms), 1毫秒=1/1000秒(s);1秒=1000000 微秒(μs), 1微秒=1/1000000秒(s);1秒=1000000000 纳秒(ns),1纳秒=1/1000000000秒(s);1秒=1000000000000皮秒 1皮秒==1/1000000000000秒。...

2018-07-18 09:55:01 24712

转载 Struct和Enum嵌套使用总结

这里有两种嵌套方式 Struct中嵌套Struct Struct中嵌套Enum 其实还有一种,也即Enum中嵌套Struct,因为网上有相关资料,而且道理同上,我这里就不赘言了;Struct中嵌套Struct为什么会有这种方式的使用Struct那?有时候我们需要一个结构中使用另外一个结构体,但是第二个结构体跟第一个关系非常紧密,而且将它于第一个结构体独立出来没有任何...

2018-07-16 20:29:40 7936

转载 java Collection集合类的使用

1 public class Student 2 { 3 // 成员变量 4 private String name; 5 private int age; 6 7 // 构造方法 8 public Student() 9 {10 super();11 }12 13 public Studen...

2018-07-14 15:34:43 825

转载 JAVA基本数据类型与引用数据类型

JAVA基本数据类型与引用数据类型Java提供了两类数据类型:一种是基本类型(原始类型),一种是引用类型。- 数据类型图:                                         ┏数值型━┳━整数型:byte short int long              ┏基本数据类型━━┫             ┗━浮点型:float double             ...

2018-07-14 14:50:26 181

转载 Java数组的定义和使用

Java 中定义数组的语法有两种:    type arrayName[];    type[] arrayName;type 为Java中的任意数据类型,包括基本类型和组合类型,arrayName为数组名,必须是一个合法的标识符,[ ] 指明该变量是一个数组类型变量。例如:int demoArray[];int[] demoArray;这两种形式没有区别,使用效果完全一样,读者可根据自己的编程习...

2018-07-14 14:35:18 162

转载 C++笔记(1)explicit构造函数

按照默认规定,只有一个参数的构造函数也定义了一个隐式转换,将该构造函数对应数据类型的数据转换为该类对象,如下面所示:class String {String ( const char* p ); // 用C风格的字符串p作为初始化值//…}String s1 = “hello”; //OK 隐式转换,等价于String s1 = String(“hello”); 但是有的时候可能会不需要这种隐式转...

2018-07-09 22:09:29 103

转载 g++的编译及调试

编译重命名等:g++ –c Hello.cc  编译文件,生成目标文件 Hello.og++ Hello.o –o abc  连接 并重命名为可执行文件 abcg++ Hello.cc    编译连接一起,生成a.outg++ Hello.cc –o hello 生成a.out并命名为hello1.总体选项    -E   只激活预处理,这个不生成文件,你需要把它重定向到一个输出文件里   面. ...

2018-07-08 14:14:11 1399

转载 -lrt

Linux环境:我要写一个c++文件,名字叫cpp.cpp我自己写了一个头文件,名叫user_wrap.h,这个头文件中包含了<time.h>中的函数timer_create,timer_settime等等,(注意,timer_create等函数除了需包含<time.h>外,g++还要添加-lrt选项才能链接)然而我自己的cpp.cpp中并没有使用此函数(timer_cre...

2018-07-08 11:53:45 6935

转载 gcc/g++ 静态动态库 混链接.

我的环境: centos6 x64. gcc4.4.7在使用gcc/g++ 编译程序时我们希望指向一些库是使用静态的链接方式. 另外的一些是动态的方式.我以boost 为例.如果我们要使用静态库则是这样的:# g++ main.cpp -lpthread /usr/lib64/libboost_thread.a /usr/lib64/libboost_system.a静态库直接写路径. 动态前面加...

2018-07-08 11:52:14 173

转载 ld --start-group ARCHIVES --end-group

`-( ARCHIVES -)'`--start-group ARCHIVES --end-group'ARCHIVES 应当是一个关于档案文件的列表. 它们可以是显式的文件名,或者'-l'选项.这些指定的档案文件会被多遍搜索,直到没有新的无定义引用被创建. 通常,一个档案文件只会被搜索一次. 但如果这个档案文件中的一个符号需要被用来解析一个档案中的目标引用到的无定义的符号,而这个符号在命令行上的...

2018-07-08 11:16:09 1185

转载 Linux C/C++ 链接选项之静态库--whole-archive,--no-whole-archive和--start-group, --end-group

参照这两篇博客:http://stackoverflow.com/questions/805555/ld-linker-question-the-whole-archive-optionhttp://codemacro.com/2014/09/15/inside-static-library/这四个都是链接器的选项,所以在编译的时候要用-Wl,[options]来传递给链接器,不然编译器会不认得这...

2018-07-08 11:15:14 2026

原创 -L、-rpath和-rpath-link的区别

关于这3个参数的说明,有不少资料,但是看完了还是觉得模糊,分不清它们的区别。本文将用实验的方法去探讨这3个参数的区别。1、三个.c文件1.1 world.c#include<stdio.h>void world(void) { printf("world.\n");}1.2 hello.c#include <stdio.h>void world(voi...

2018-07-07 22:06:13 1952 3

转载 Linux静态库与动态库制作

1、静态库1.1 生成.o文件    用-c生成.o文件(用.o文件来生成库文件——包含静态库和动态库)。ubuntu $gcc –c apuelib.c /* 利用.c文件生成.o文件 */1.2 生成静态库     通过.o文件生成静态库文件ubuntu $ar rcsv libapuelib.a apuelib.o /* 库名要以lib开头 */1.3 测试     通过生成的静态库文件进...

2018-07-07 17:47:09 138

转载 linux编译动态库之fPIC

在生成动态库时,常常习惯性的加上fPIC选项,fPIC有什么作用和意义,加不加有什么区别,这里做下小结:fPIC的全称是 Position Independent Code, 用于生成位置无关代码。什么是位置无关代码,个人理解是代码无绝对跳转,跳转都为相对跳转。1、不加fPIC选项即使不加fPIC也可以生成.so文件,但是对于源文件有要求,例如因为不加fPIC编译的so必须要在加载到用户程序的地址...

2018-07-07 15:30:13 290

转载 gcc -fPIC选项

使用 -fPIC 选项,会生成 PIC 代码。.so 要求为 PIC,以达到动态链接的目的,否则,无法实现动态链接。non-PIC 与 PIC 代码的区别主要在于 access global data, jump label 的不同。比如一条 access global data 的指令,non-PIC 的形势是:ld r3, var1PIC 的形式则是:ld r3, var1-offset@GO...

2018-07-07 15:29:34 404

转载 g++的-pthread和-lpthread的区别

用gcc编译使用了POSIX thread的程序时通常需要加额外的选项,以便使用thread-safe的库及头文件,一些老的书里说直接增加链接选项 -lpthread 就可以了,像这样:Shell代码  gcc -c x.c  gcc x.o -ox -lpthread   而gcc手册里则指出应该在编译和链接时都增加 -pthread 选项,像这样:Shell代码  gcc -pthread -...

2018-07-07 14:38:32 2860

转载 -lpthread和-pthread的区别

-lpthread和-pthread的区别编译程序包括 预编译, 编译,汇编,链接,包含头文件了,仅能说明有了线程函数的声明, 但是还没有实现, 加上-lpthread是在链接阶段,链接这个库。<stdio.h>等都是静态库,不需要做额外的表示,连接时会直接链接进代码里。pthread是动态库,需要用-lpthread,所有的动态库都需要用-lxxx来引用用gcc编译使用了POSIX ...

2018-07-07 14:37:50 1161

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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