排序:
默认
按更新时间
按访问量

java-生产者消费者模式

经常会有公司叫我们手撕代码,比如网易,阿里,那我们是不是该掌握下呢。下面这段代码来自《现代操作系统》进程与线程P49页。public class ProducerConsumer { public ProducerConsumer() { } private static final ...

2017-08-28 08:47:26

阅读数:125

评论数:0

解压字符串

题目: 某位程序员想出了一种压缩字符串的方法,压缩后的字符串如下:3{a}2{bc}, 3{a2{c}},2{abc}3{cd}ef,现在需要你写出一个解压程序,还原原始的字符串,如: s=“3{a}2{bc}”return “aaabcbc” , s=”3{a2{c}}” return “a...

2017-08-27 09:54:35

阅读数:144

评论数:0

Java-break,continue,return用法

当年的我也算是基础小王子,但是长时间的不用导致我与他们越来越陌生了,所以我要把他们记在我的本本上。 首先我们要明白,java中到底有多少个循环关键字? 答:没错,就是3个,他们分别是:for(初始值;条件变量;增量),do{}…while(),while{}。break:跳出循环,执行循环体下面...

2017-08-24 15:55:21

阅读数:171

评论数:0

归并排序-Java

归并算法:就是两个有序的序列,通过归并排序,变成一个有序的队列。 如图所示,对于一个序列的排序,可以这样做:首先,将序列分解成单个的数,,然后对相邻的有序序列通过排序逐渐整合为一个大的有序序列。这就是归并排序。下面是我写的java代码:public class GuiBingPaiXu { ...

2017-08-21 14:57:48

阅读数:115

评论数:1

ConcurrentHashmap中的size()方法简单解释

本文所有的源码都是基于JDK1.8ConcurrentHashmap中的size()方法源码:public int size() { long n = sumCount(); return ((n < 0L) ? 0 : (n ...

2017-08-21 10:31:01

阅读数:2721

评论数:1

HashMap和ConcurrentHashMap流程图

本文表达HashMap和ConcurrentHashMap中的put()方法的执行流程图,基于JDK1.8的源码执行过程。HashMap的put()方法: ConcurrentHashMap的put()方法: final V putVal(K key, V value, boolean onl...

2017-08-20 21:05:15

阅读数:455

评论数:0

static和final修饰方法

static修饰的方法是静态方法,所有的对象共用一份,也就是共享方法。static方法是可以被继承,然后可以被重写和重载。final修饰的方法是不可变方法,final方法所在类被继承时,被final修饰的方法是不能被重写的,但是可以重载。

2017-08-19 17:18:33

阅读数:224

评论数:0

Partition函数

快排中核心的方法应该算是Partition函数了,它的作用就是将整个数组分成小于基准值的左边,和大于基准值的右边。普通的Partition函数是这样的:public static int partition1(int[] array,int lo,int hi){ //以第一个值为...

2017-08-17 15:06:27

阅读数:6191

评论数:0

堆排序—Java

堆排序: 一棵完全二叉树,如果父节点的值大于等于左右节点的值,则称此完全二叉树为小根堆(小顶堆);如果父节点的值小于等于左右节点的值,则次完全二叉树为大根堆(大顶堆)。堆排序是建立在大顶堆或小顶堆的基础上的,通过不断的交换堆顶元素和堆尾元素,来对数组排序。基于大顶堆的堆排序,数组排序结果是升序的...

2017-08-17 10:24:47

阅读数:217

评论数:0

打印1到最大的n位数-Java

在练习剑指offer的时候,第12题打印1到最大的n位数的时候,想找个java版的,但大家要么用BigInteger做,要么给出其他的方法。我觉得要给就给最好的方法,下面是我自己参考C++代码写的java版的全排列方法。代码:public class Quanpaixu { public s...

2017-08-13 14:43:39

阅读数:170

评论数:0

两个大数相乘-Java

两个字符串表示两个非常大的数,请设计算法计算这两个大数的乘积,结果用字符串表示。例如S1=”7832974972840919321747983209327”,S2=”1987432091904327543957”,设计算法计算出S1*S2的结果,结果用String输出,不准用BigInter。思路...

2017-08-02 11:35:39

阅读数:2391

评论数:0

通俗易懂的Java序列化原理

序列化能干吗? (1)通过序列化可以把数据永久地保存到硬盘上(通常存放在文件里) (2)利用序列化实现远程通信,即在网络上传送对象的字节序列。网上搜索的都是这样的解释,抽象,难懂。 我当时看见这两问题的时候,我就有两个问题? (1).txt,.java,.class文件我也没序列化,不也保...

2017-07-30 11:07:37

阅读数:546

评论数:0

猜数游戏

来源:牛客网2017年校招全国统一模拟笔试(第五场)编程题集合 本文是转载博客,原博客:[编程题] 猜数游戏题目: 牛牛和羊羊在玩一个有趣的猜数游戏。在这个游戏中,牛牛玩家选择一个正整数,羊羊根据已给的提示猜这个数字。第i个提示是”Y”或者”N”,表示牛牛选择的数是否是i的倍数。例如,如果提示...

2017-07-29 20:05:34

阅读数:808

评论数:0

Java中的检查异常和未检查异常

已检查异常,指的是一个函数的代码逻辑没有错误,但程序运行时会因为IO等错误导致异常,你在编写程序阶段是预料不到的。如果不处理这些异常,程序将来肯定会出错。所以编译器会提示你要去捕获并处理这种可能发生的异常,不处理就不能通过编译。 就比如所有try catch的异常都是已检查异常。因为已检查异常必...

2017-07-29 15:37:41

阅读数:124

评论数:0

求链表内环的入口节点-Java

步骤: 1.设置快慢两个指针,slow和fast,每次slow走一步slow.next,而fast走两步fast.next.next. 2.如果链表有环肯定可以在环内的一个节点相遇. 3.此时,slow指向相遇的节点,而fast指向头结点,然后slow和fast继续走,每次都走一步,slow...

2017-07-29 10:51:14

阅读数:198

评论数:0

Thread.interrupt()方法理解

原博客地址: 多线程编程 实战篇 (四)不客气地说,至少有一半人认为,线程的”中断”就是让线程停止. 如果你也这么认为,那你对多线程编程还没有入门.在java中,线程的中断(interrupt)只是改变了线程的中断状态,至于这个中断状态改变后 带来的结果,那是无法确定的,有时它更是让停止中的...

2017-07-27 23:07:45

阅读数:433

评论数:0

java private修饰的类和变量

private主要用来修饰变量和方法,一般不会用来修饰类,除非是内部类。 1.new对象 被private修饰的变量和方法,只能在自己对象内部使用,其他对象即使是new你这个对象也是获取不到被private修饰的变量以及方法的。public class privateClass { p...

2017-07-25 11:26:12

阅读数:1981

评论数:1

Volatile和Synchronized对可见性和原子性的支持

在学习并发编程的时候,遇见了volatile和synchronized关键字问题,volatile是可以保证可见性,但无法保证原子性,synchronized关键字由于其是加锁机制,肯定是可以保证原子性的。但是它能保证可见性吗?也就是说被synchronized包裹的变量的值被修改后会立即送往主内...

2017-07-25 10:05:09

阅读数:139

评论数:0

Socket套接字

socket编程,熟悉吧,那到底什么是socket呢?: 我们经常把socket翻译为套接字,socket是在应用层和传输层之间的一个抽象层,它把TCP/IP层复杂的操作抽象为几个简单的接口,来供应用层调用,实现进程在网络中通信。 socket是一种进程间通信机...

2017-07-24 16:56:18

阅读数:172

评论数:0

Spring MVC请求执行流程

学习Spring MVC时间有点长了,但是最近打算找工作,需要重新了解下,所以又去温故知新了。Spring MVC就是用来写web的框架,简化你写web的一些不必要的流程,让程序员能专注于业务逻辑也就是controller的代码编写。这篇文章是比较详细的描述Spring MVC的流程的,Sprin...

2017-07-23 16:11:03

阅读数:574

评论数:0

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