在【java虚拟机系列】java虚拟机系列之JVM总述中我们已经详细讲解过java中的内存模型,了解了关于JVM中内存管理的基本知识,接下来本博客将带领大家了解java中的垃圾回收与内存分配策略。
垃圾回收(Garbage Collection,GC)是java语言的一大特色,在Java中,程序员不需要去关心内存动态分配和垃圾回收的问题,这一切都交给了JVM来处理。而在C/C++中是需要...
分类:
编程语言 时间:
2016-06-24 15:25:57
阅读次数:
192
题目输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。解题对两个数a、b拼成一个数c
c的可能只有两种:ab或者bc
题目要求拼成的数最小,选取ab、bc中最小的那个数作为答案
当有三个数的时候:a、b、c
拼接方式有六种:abc、acb、bac、bca、cab、cb...
分类:
编程语言 时间:
2016-06-24 15:25:51
阅读次数:
160
题目在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数。解题方法一:暴力public class Solution {
public int InversePairs(int [] array) {
if(array == null || array.length <=1)
ret...
分类:
编程语言 时间:
2016-06-24 15:27:53
阅读次数:
197
题目统计一个数字在排序数组中出现的次数。解题方法一:暴力
线性遍历
方法二:二分法
分别求出左右边界public class Solution {
public int GetNumberOfK(int [] array , int k) {
if(array == null|| array.length==0)
return 0;...
分类:
编程语言 时间:
2016-06-24 15:25:25
阅读次数:
132
七月算法4月机器学习算法班课程笔记——No.10
前言 与回归与分类不同,聚类是无监督学习算法,无监督指的是只需要数据,不需要标记结果,试图探索和发现一些模式。比如对用户购买模式的分析、图像颜色分割等。聚类算法的提出比较早,是数据挖掘的一个重要模块,可以对大量数据分类并概括出每一类的特点。目前也有很多种聚类算法,包括划分法、层次法、基于密度的方法、基于网格的方法等。实际生产中,很少有只用聚类算法的...
分类:
编程语言 时间:
2016-06-24 15:22:21
阅读次数:
351
●
Python3访问字符串
Python不支持单字符类型,单字符在Python中也是作为一个字符串来使用;
字符串切片截取;
空值
空值是Python里一个特殊的值,用None表示。None不能理解为0,因为0是有意义的,而None是一个特殊的空值。
最后,理解变量在计算机内存中的表示也非常重要。当我们写:
a = 'ABC'
时,...
分类:
编程语言 时间:
2016-06-24 15:24:07
阅读次数:
286
Java_Day09
继承+接口+抽象类
构造函数
子父类中的构造函数特点。
在子类构造对象时,发现访问子类构造函数时,父类也运行了。
为什么呢?
因为:在子类的构造函数中第一行有一个默认的隐式语句 super()
子类的实例化过程:子类中所有的构造函数默认都会访问父类中的空参构造函数。
在每个子类构造函数中,都有一个隐式的super()调用父类空参构造函数。
...
分类:
编程语言 时间:
2016-06-24 15:20:00
阅读次数:
284
遗传算法在自动组卷中的应用遗传算法遗传算法(Genetic Algorithm)是一种模拟自然界的进化规律-优胜劣汰演化来的随机搜索算法,其在解决多种约束条件下的最优解这类问题上具有优秀的表现.1. 基本概念在遗传算法中有几个基本的概念:基因、个体、种群和进化.基因是个体的表现,不同个体的基因序列不同;个体是指单个的生命,个体是组成种群的基础;而进化的基本单位是种群,一个种群里面有多个个体;进化是指...
分类:
编程语言 时间:
2016-06-24 15:18:17
阅读次数:
296
今天在编译服务的时候,出现了一个错误:/usr/bin/ld: cannot find -lxxx
于是查了一下,这个错误是因为链接程序ld在指定目录里找不到libxxx.so这个库。那么,上面所说的“指定目录”是哪些目录,以及 -l的作用是什么呢?-l参数:用来指定程序要链接的库,-l参数紧接着就是库名。这里的库名并非真正的库文件名。以库名为math的库为例,他的库文件名是libmath.so或者...
分类:
编程语言 时间:
2016-06-24 15:18:09
阅读次数:
202
Java注解是插入代码中的一种注释或者说一种元数据(mete data)。这些注解信息可以在编译期使用编译期使用预编译工具进行处理,也可以运用Java的反射机制在运行时处理。注解为我们在代码中添加信息提供了一种形式化的方法。Java中的注解主要是:
元注解
自定义注解
元注解
Java提供了四个基本的元注解类型:
这些类型在:java.lang.annotation包中 @Documente...
分类:
编程语言 时间:
2016-06-24 15:17:06
阅读次数:
190
第16 章 多线程
16.1.1 线程和进程
所有运行中的任务通常对应一个进程(Process)。当一个程序进入内存运行时,即变成一个进程。进程是处于运行过程中的程序,并且具有一定的独立功能。进程是系统进行资源分配和调度的一个独立单位
一般而言,进程包含如下3个特征
1.独立性 :进程是系统中独立存在的实体,它拥有独立的资源,每一个进程都拥有自己私有的地址空间,没有经过进程本身运行的情况下...
分类:
编程语言 时间:
2016-06-24 15:18:13
阅读次数:
253
上篇博客记录了如何用java调用api把数据写入索引,这次记录下如何搜索。一、准备数据 String data1 = JsonUtil.model2Json(new Blog(1, "git简介", "2016-06-19", "SVN与Git最主要的区别..."));
String data2 = JsonUtil.model2Json(new Blog(2, "Java中泛...
分类:
编程语言 时间:
2016-06-24 15:18:57
阅读次数:
199
java1.8中的原子操作的类在包java.util.concurrent.atomic下面,全部包括如下:
AtomicBooleanAtomicIntegerAtomicIntegerArrayAtomicIntegerFieldUpdaterAtomicLongAtomicLongArrayAtomicLongFieldUpdaterAtomicMarkableReferenceA...
分类:
编程语言 时间:
2016-06-24 15:15:59
阅读次数:
237
Java 中的堆是 JVM 所管理的最大的一块内存空间,主要用于存放各种类的实例对象。
在 Java 中,堆被划分成两个不同的区域:新生代 ( Young )、老年代 ( Old )。新生代 ( Young ) 又被划分为三个区域:Eden、From Survivor、To Survivor。
这样划分的目的是为了使 JVM 能够更好的管理堆内存中的对象,包括内存的分配以及回收。
...
分类:
编程语言 时间:
2016-06-24 15:16:19
阅读次数:
264
摘要:
Java 流在处理上分为字符流和字节流。字符流处理的单元为 2 个字节的 Unicode
字符,分别操作字符、字符数组或字符串,而字节流处理单元为 1 个字节,操作字节和字节数组。
Java 内用 Unicode 编码存储字符,字符流处理类负责将外部的其他编码的字符流和 java 内 Unicode 字符流之间的转换。而类 InputStreamReader 和 Outpu...
分类:
编程语言 时间:
2016-06-24 15:16:56
阅读次数:
298
1. 线程优先级的介绍
java 中的线程优先级的范围是1~10,默认的优先级是5。“高优先级线程”会优先于“低优先级线程”执行。
java 中有两种线程:用户线程和守护线程。可以通过isDaemon()方法来区别它们:如果返回false,则说明该线程是“用户线程”;否则就是“守护线程”。
用户线程一般用户执行用户级任务,而守护线程也就是“后台线程”,一般用来执行后台任务。需要注意的是:Ja...
分类:
编程语言 时间:
2016-06-24 15:13:58
阅读次数:
209
1. 生产/消费者模型
生产/消费者问题是个非常典型的多线程问题,涉及到的对象包括“生产者”、“消费者”、“仓库”和“产品”。他们之间的关系如下:
(01) 生产者仅仅在仓储未满时候生产,仓满则停止生产。
(02) 消费者仅仅在仓储有产品时候才能消费,仓空则等待。
(03) 当消费者发现仓储没产品可消费时候会通知生产者生产。
(04) 生产者在生产出可消费产品时候,应该通知等待的消费者去...
分类:
编程语言 时间:
2016-06-24 15:13:31
阅读次数:
167