
编程语言
SuperCoderLei
这个作者很懒,什么都没留下…
展开
-
线程池ThreadPoolExecutor概述
为什么用线程池创建/销毁线程伴随着系统开销,过于频繁的创建/销毁线程,会很大程度上影响处理效率例如:记创建线程消耗时间T1,执行任务消耗时间T2,销毁线程消耗时间T3如果T1+T3>T2,那么是不是说开启一个线程来执行这个任务太不划算了!正好,线程池缓存线程,可用已有的闲置线程来执行新任务,避免了T1+T3带来的系统开销线程并发数量过多,抢占系统资源从而导致阻塞我们知道线程能共享系统资源,如...原创 2020-04-17 14:17:45 · 214 阅读 · 0 评论 -
DCL单例模式详解
public class Test { private volatile static Test instance; private Test() { } public static Test getInstance() { if (instance == null) { synchronized (Test.class) { ...原创 2020-01-03 11:46:20 · 2995 阅读 · 1 评论 -
Java中的浅拷贝与深拷贝
Java中的对象拷贝(Object Copy)指的是将一个对象的所有属性(成员变量)拷贝到另一个有着相同类类型的对象中去。举例说明:比如,对象A和对象B都属于类S,具有属性a和b。那么对对象A进行拷贝操作赋值给对象B就是:B.a=A.a; B.b=A.b;在程序中拷贝对象是很常见的,主要是为了在新的上下文环境中复用现有对象的部分或全部 数据。Java中的对象拷贝主要分为:浅拷贝(Shal...原创 2020-04-23 10:11:45 · 315 阅读 · 0 评论 -
二进制、八进制、十进制、十六进制之间的转换
进制也就是进制位,我们常用的进制包括:二进制、八进制、十进制与十六进制,它们之间区别在于数运算时是逢几进一位。比如二进制是逢2进一位,十进制也就是我们常用的0-9是逢10进一位。具体的用法小编今天不着重解释,主要针对他们之间的转换加以讨论(今天只讲整数)。二进制与十进制之间的转换 1 十进制转二进制 方法为:十进制数除2取余法,即十进制数除2,余数为权位上的数,得到的商值继续...转载 2018-08-22 14:30:15 · 328 阅读 · 0 评论 -
java位运算
位移动运算符:<<表示左移, 左移一位表示原来的值乘2.例如:3 <<2(3为int型)1)把3转换为二进制数字0000 0000 0000 0000 0000 0000 0000 0011,2)把该数字高位(左侧)的两个零移出,其他的数字都朝左平移2位,3)在低位(右侧)的两个空位补零。则得到的最终结果是0000 0000 0000 0000 0000 00...转载 2018-07-31 20:30:05 · 2432 阅读 · 0 评论 -
Java和Android中的注解
1.引言从JDK1.5开始,引入了注解类Annotation,Annotation其实是一种接口,可以作用于类、方法、属性等等 ,它可以通过反射机制来访问annotation信息,获取所加上注解信息,做相应的操作。相当于给相关的作用对象打上“tag”,使用方便,作用广泛。2.java.lang中的注解 在java.lang中,用到三种注解类,即常用到的Deprecated,Ov...转载 2018-07-31 11:07:24 · 356 阅读 · 0 评论 -
数组、链表等常用数据结构和集合浅解(java)
------数据结构:是计算机存储、组织数据的方式。数据结构是指相互之间存在一种或多种特定关系的数据元素的集合。1.集合数据结构中的元素之间除了“同属一个集合” 的相互关系外,别无其他关系;2.线性结构数据结构中的元素存在一对一的相互关系;3.树形结构数据结构中的元素存在一对多的相互关系;4.图形结构数据结构中的元素存在多对多的相互关系。常用数据结构:数组、栈、队列、链表、树、图、堆、散列表---...转载 2018-07-08 14:00:08 · 330 阅读 · 0 评论 -
Android 数据结构以及常用的算法
一、Android常见数据结构&优缺点。分享给大家,希望对大家有帮助!数组优点:查询快,如果知道索引可以快速地存取缺点:删除慢,大小固定有序数组优点:比无序数组查找快缺点:删除和插入慢,大小固定栈优点:提供后进先出的存取方式缺点:存取其他项很慢队列优点:提供先进先出的存取方式缺点:存取其他项都很慢链表优点:插入快,删除快缺点:查找慢(一个个节点查)二叉树优点:查找,插入,删除都快(平衡二叉...转载 2018-07-08 13:05:17 · 2637 阅读 · 1 评论 -
c++中的字符数组与字符指针
转自:http://blog.youkuaiyun.com/qiumm/article/details/56571201.字符指针可以指向一个字符串。我们可以用字符串常量对字符指针进行初始化。例如,有说明语句:char *str = "This is a string.";是对字符指针进行初始化。此时,字符指针指向的是一个字符串常量的首地址,即指向字符串的首地址。这里要注意字符指针与字符...原创 2018-02-06 11:44:09 · 1753 阅读 · 0 评论 -
JNI入门之C/C++基础六
1.6预编译指令1.6.1 C语言执行的流程编译:形成目标代码(.obj)连接:将目标代码与C函数库连接合并,形成最终的可执行文件执行1.6.2预编译预编译(预处理),为编译做准备工作,完成代码文本的替换工作1.6.3宏定义、宏替换、预编译指令#include命令#include是文件包含命令,主要用来引入对应的头文件。#include的处理过程很简单,就是将头文件的内容插入到该命令所在的位置,从...原创 2018-05-31 14:11:51 · 287 阅读 · 0 评论 -
JNI入门之C/C++基础五
1.5联合体和IO1.5.1联合体概念联合体(共用体)不同类型的变量共同占用一段内存(相互覆盖),联合变量任何时刻只有一个成员存在,节省内存联合体变量的大小=最大的成员所占的字节数union MyValue{ int x; int y; double z; }; void main(){ union M...原创 2018-05-31 14:11:10 · 220 阅读 · 0 评论 -
JNI入门之C/C++基础四
1.4结构体与指针1.4.1结构体概念结构体(struct) 结构体是由基本数据类型构成的、并用一个标识符来命名的各种变量的组合。结构体中可以使用不同的数据类型。1.4.2结构体几种定义方式第一种:只有结构体定义 struct stuff{ char job[20]; int age; floa...原创 2018-05-31 14:08:34 · 315 阅读 · 0 评论 -
JNI入门之C/C++基础三
1.3动态内存分配 字符串1.3.1几个内存区域1.栈区(stack) windows下,栈内存分配2M(确定的常数),超出了限制,提示stackoverflow错误 自动分配,释放2.堆区(heap) 程序员手动分配释放,操作系统80%内存3.全局区或静态区4.字符常量区5.程序代码区1.3.2 动态分配内存方法:void *malloc(unsi...原创 2018-05-31 14:02:40 · 225 阅读 · 0 评论 -
JNI入门之C/C++基础二
1.2指针类型 空指针 二级指针 指针运算 指针与数组1.2.1指针为什么要有类型指针有类型,地址没有类型地址只是开始的位置,类型读取到什么位置结束(不同的类型读取的字节数不同)1.2.2 NULL空指针空指针的默认值为01)什么是空指针如果 p 是一个指针变量,则 p = 0;、p = 0L;、p = '\0';、p = 3 - 3;、p = 0 * 17; 、p = NULL; 中的任...原创 2018-05-31 14:01:22 · 281 阅读 · 0 评论 -
JNI入门之C/C++基础一
1.1C语言基本数据类型 输入输出函数注意事项 指针1.1.1头文件1,头文件可以定义所用的函数列表,方便查阅你可以调用的函数;2,头文件可以定义很多宏定义,就是一些全局静态变量的定义,在这样的情况下,只要修改头文件的内容,程序就可以做相应的修改,不用亲自跑到繁琐的代码内去搜索。3,头文件只是声明,不占内存空间,要知道其执行过程,要看你头文件所申明的函数是在哪个.c文件里定义的,才知道。4,他并不...原创 2018-05-31 13:59:05 · 705 阅读 · 0 评论