Fork me on GitHub

随笔分类 -  JAVA

摘要:引言 所谓排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作。排序算法,就是如何使得记录按照要求排列的方法。排序算法在很多领域得到相当地重视,尤其是在大量数据的处理方面。一个优秀的算法可以节省大量的资源。在各个领域中考虑到数据的各种限制和规范,要得到一个符合实际的优秀 阅读全文
posted @ 2020-12-29 15:26 郭耀华 阅读(2340) 评论(0) 推荐(5) 编辑
摘要:一、运行时数据区域 线程隔离:线程隔离的意思,就是给不同的线程多分配的资源用,以做到不争用。 线程共享:线程共享就是资源只有一个没有办法分配更多,只能共享。 Java虚拟机管理的内存包括几个运行时数据内存:方法区、虚拟机栈、本地方法栈、堆、程序计数器,其中方法区和堆是由线程共享的数据区,其他几个是线 阅读全文
posted @ 2018-09-25 11:22 郭耀华 阅读(2321) 评论(1) 推荐(6) 编辑
摘要:最近几天在研究排序算法,看了很多博客,发现网上有的文章中对排序算法解释的并不是很透彻,而且有很多代码都是错误的,例如有的文章中在“桶排序”算法中对每个桶进行排序直接使用了Collection.sort()函数,这样虽然能达到效果,但对于算法研究来讲是不可以的。所以我根据这几天看的文章,整理了一个较为 阅读全文
posted @ 2018-03-19 10:14 郭耀华 阅读(209040) 评论(53) 推荐(517) 编辑
摘要:术语 1. 节点的度:一个节点含有的子树的个数称为该节点的度; 2. 叶节点或终端节点:度为零的节点; 3. 非终端节点或分支节点:度不为零的节点; 4. 父亲节点或父节点:若一个节点含有子节点,则这个节点称为其子节点的父节点; 5. 兄弟节点:具有相同父节点的节点互称为兄弟节点; 6. 节点的层次 阅读全文
posted @ 2018-03-18 13:59 郭耀华 阅读(8587) 评论(1) 推荐(4) 编辑
摘要:最近在学习算法和数据结构,用到Java里的Stack类,但程序运行结果一直和我预料的不一样,网上也没查清楚,最后查了API,才搞明白。 1. java.util.Stack继承类 java.util.Vector 2. empty()方法是Stack自己实现的方法 3. isEmpty() 是从Ve 阅读全文
posted @ 2018-03-17 11:29 郭耀华 阅读(2226) 评论(0) 推荐(0) 编辑
摘要:Arrays 类 java.util.Arrays类能方便地操作数组,它提供的所有方法都是静态的。具有以下功能: 给数组赋值:通过fill方法。 对数组排序:通过sort方法,按升序。 比较数组:通过equals方法比较数组中元素值是否相等。 查找数组元素:通过binarySearch方法能对排序好 阅读全文
posted @ 2018-03-12 16:04 郭耀华 阅读(651) 评论(0) 推荐(0) 编辑
摘要:字符串广泛应用 在Java 编程中,在 Java 中字符串属于对象,Java 提供了 String 类来创建和操作字符串。 创建字符串 创建字符串最简单的方式如下: String greeting = "菜鸟教程"; String greeting = "菜鸟教程"; String greeting 阅读全文
posted @ 2018-03-08 16:43 郭耀华 阅读(282) 评论(0) 推荐(0) 编辑
摘要:当对字符串进行修改的时候,需要使用StringBuffer和StringBuilder类。 和String类不同的是,StringBuffer和StringBuilder类的对象能够被多次的修改,并且不产生新的未使用对象。 StringBuilder类在Java 5中被提出,它和StringBuff 阅读全文
posted @ 2018-03-08 16:27 郭耀华 阅读(387) 评论(0) 推荐(0) 编辑
摘要:35.数组中的逆序对 在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数P。并将P对1000000007取模的结果输出。 即输出P%1000000007 输入描述: 题目保证输入的数组中没有的相同的数字 数据范围: 对于%50的 阅读全文
posted @ 2018-03-06 22:55 郭耀华 阅读(180) 评论(0) 推荐(0) 编辑
摘要:32.把数组排成最小的数 输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。 解题思路: 1. 实际是将数组元素进行排序的操作 2. 排序规则为,若MN组成的数字大于NM,则 阅读全文
posted @ 2018-02-11 23:24 郭耀华 阅读(205) 评论(0) 推荐(0) 编辑
摘要:30.连续子数组的最大和 HZ偶尔会拿些专业问题来忽悠那些非计算机专业的同学。今天测试组开完会后,他又发话了:在古老的一维模式识别中,常常需要计算连续子向量的最大和,当向量全为正数的时候,问题很好解决。但是,如果向量中包含负数,是否应该包含某个负数,并期望旁边的正数会弥补它呢?例如:{6, 3, 2 阅读全文
posted @ 2018-02-10 23:46 郭耀华 阅读(198) 评论(0) 推荐(0) 编辑
摘要:操作集合的工具类Collections 操作集合的工具类Collections Java提供了一个操作Set、List和Map等集合的工具类:Collections,该工具类里提供了大量方法对集合元素进行排序、查询和修改等操作,还提供了将集合对象设置为不可变、对集合对象实现同步控制等方法。 排序操作 阅读全文
posted @ 2018-02-10 10:20 郭耀华 阅读(534) 评论(0) 推荐(0) 编辑
摘要:Map Map Map用于保存具有映射关系的数据,因此Map集合里保存着两组值,一组值用于保存Map里的key,另一组值用于保存Map里的value,key和value都可以是任何引用类型的数据。Map的key不容许重复,即同一个Map对象的任何两个key通过equals方法比较总是返回false。 阅读全文
posted @ 2018-02-10 09:58 郭耀华 阅读(690) 评论(0) 推荐(0) 编辑
摘要:Queue接口 Queue接口 Queue用于模拟了队列这种数据结构,队列通常是指“先进先出”(FIFO)的容器。队列的头部保存在队列中时间最长的元素,队列的尾部保存在队列中时间最短的元素。新元素插入(offer)到队列的尾部,访问元素(poll)操作会返回队列头部的元素。通常,队列不容许随机访问队 阅读全文
posted @ 2018-02-10 09:16 郭耀华 阅读(995) 评论(0) 推荐(0) 编辑
摘要:List接口 List接口 List集合代表一个有序集合,集合中每一个元素都有其对应的顺序索引。List集合容许使用重复元素,可以通过索引来访问指定位置的集合对象。 ArrayList和Vector实现类 ArrayList和Vector实现类 ArrayList和Vector做为List的类的两个 阅读全文
posted @ 2018-02-09 23:15 郭耀华 阅读(447) 评论(0) 推荐(0) 编辑
摘要:Set接口 Set接口 前面已经简绍过Set集合,它类似于一个罐子,一旦把对象'丢进'Set集合,集合里多个对象之间没有明显的顺序。Set集合与Collection基本上完全一样,它没有提供任何额外的方法。 Set集合不容许包含相同的元素,如果试图把两个相同元素加入到同一个Set集合中,则添加操作失 阅读全文
posted @ 2018-02-09 23:02 郭耀华 阅读(437) 评论(0) 推荐(0) 编辑
摘要:1.Java集合概述 在编程中,常常需要集中存放多个数据。当然我们可以使用数组来保存多个对象。但数组长度不可变化,一旦在初始化时指定了数组长度,则这个数组长度是不可变的,如果需要保存个数变化的数据,数组就显得无能为力了;而且数组无法保存具有映射关系的数据,如成绩表:语文-80,数学-90,这种数据看 阅读全文
posted @ 2018-02-09 21:40 郭耀华 阅读(511) 评论(0) 推荐(0) 编辑
摘要:作者:Intopass链接:https://www.zhihu.com/question/31203609/answer/50992895来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 首先,不要纠结于 Pass By Value 和 Pass By Referenc 阅读全文
posted @ 2018-02-09 21:22 郭耀华 阅读(707) 评论(0) 推荐(0) 编辑
摘要:Java的Comparator和Comparable当需要排序的集合或数组不是单纯的数字型时,通常可以使用Comparator或Comparable,以简单的方式实现对象排序或自定义排序。 1.Comparable简介: Java.lang.Comparable是排序接口。若一个类实现了Compar 阅读全文
posted @ 2018-02-09 16:31 郭耀华 阅读(267) 评论(0) 推荐(2) 编辑
摘要:线程安全 就是多线程访问时,采用了加锁机制,当一个线程访问该类的某个数据时,进行保护,其他线程不能进行访问直到该线程读取完,其他线程才可使用。不会出现数据不一致或者数据污染。 线程不安全 就是不提供数据访问保护,有可能出现多个线程先后更改数据造成所得到的数据是脏数据。 阅读全文
posted @ 2018-02-07 23:09 郭耀华 阅读(501) 评论(0) 推荐(0) 编辑