Thread类的sleep()方法和对象的wait()方法都可以让线程暂停执行,它们有什么区别?

sleep()方法(休眠)是线程类(Thread)的静态方法,调用此方法会让当前线程暂停执行指定的时间,将执行机会(CPU)让给其他线程,但是对象的锁依然保持,因此休眠时间结束后会自动恢复(线程回到就绪状态)。wait()是Object类的方法,调用对象的wait()方法导致当前线程放弃对象的锁(...

2019-06-19 17:16:35

阅读数 17

评论数 0

单例模式(Singleton Pattern)

单例模式 这种类型的设计模式属于创建型模式。它提供了一种创建对象的最佳方式。 这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。 实现 我们将创建一个 SingleObject 类。Si...

2019-06-16 16:04:59

阅读数 19

评论数 0

斐波那契数列

斐波那契数据列:1,1,2,3,5,8… 求第n个数值,代码中n最大的输入值是46。 import java.util.Scanner; public class Fibonacci { public static void main(String[] args) { S...

2019-06-07 16:09:32

阅读数 63

评论数 0

进程和线程的区别是什么?

进程是执行着的应用程序,而线程是进程内部的一个执行序列。一个进程可以有多个线程。线程又叫做轻量级进程。

2019-06-07 16:03:56

阅读数 242

评论数 0

代理模式(Proxy Pattern)

代理模式 在代理模式(Proxy Pattern)中,一个类代表另一个类的功能。这种类型的设计模式属于结构型模式。 在代理模式中,我们创建具有现有对象的对象,以便向外界提供功能接口。 介绍 意图: 为其他对象提供一种代理以控制对这个对象的访问 应用实例: 1、Windows 里面的快捷方式。 ...

2019-06-06 19:44:28

阅读数 45

评论数 0

工厂模式(Factory Pattern)

工厂模式 这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。在工厂模式中,我们在创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个共同的接口来指向新创建的对象。 介绍 应用实例: 1、你需要一辆汽车,可以直接从工厂里面提货,而不用去管这辆汽车是怎么做出来的,以及这个汽车里面的...

2019-06-05 21:39:10

阅读数 23

评论数 0

Spring MVC的工作原理是怎样的?

Spring MVC的工作原理如下图所示: ① 客户端的所有请求都交给前端控制器DispatcherServlet来处理,它会负责调用系统的其他模块来真正处理用户的请求。 ② DispatcherServlet收到请求后,将根据请求的信息(包括URL、HTTP协议方法、请求头、请求参数、Cook...

2019-06-05 13:36:55

阅读数 17

评论数 0

String s = new String(“xyz”);创建了几个字符串对象?

两个对象,一个是静态区的"xyz",一个是用new创建在堆上的对象。 String str1 = "hello"; //str1指向静态区 String str2 = new String("hello"); //str2指向堆上的对象...

2019-06-04 20:58:10

阅读数 44

评论数 0

Java注解

https://blog.csdn.net/fanxiaobin577328725/article/details/52658781 https://beginnersbook.com/2014/09/java-annotations/

2019-05-28 17:09:06

阅读数 9

评论数 0

目录格式修改

针对已经设定好格式的目录,如果想修改目录格式,可以进行以下操作进行修改。 在word2013版里,选择引用-目录-自定义目录,出现下面图形 点击修改,出现下图,就可以对每一级的目录进行修改了。 ...

2019-05-24 15:11:19

阅读数 8

评论数 0

字符串匹配

#include <iostream> using namespace std; //判断str2是否是str1的子串,如果是就返回第一个匹配字母的索引,不是就返回-1 int isSubstr(string str1, string str2){ i...

2019-02-16 12:38:28

阅读数 18

评论数 0

快速排序

#include<iostream> using namespace std; void quickSort(int a[], int low, int high){ if(low >= high) ...

2019-02-01 23:59:32

阅读数 14

评论数 0

CentOS启动MySQL服务失败解决方法

为了解决这个问题,我们不妨看一下日志文件,cat /var/log/mysqld.log,结果如下图 从显示信息中,我们发现是无法创建PID文件,提示没有该文件或目录。 解决方法如下图所示的操作: 令人遗憾的是,上面创建的mysqld目录在关机以后会消失,下次启动MySQL需要再次创建。不过...

2018-12-23 22:36:22

阅读数 661

评论数 0

翻转单词顺序列

想了一种与书上不一样的解法,调了好几个小时,终于在牛客AC了。 代码示例: #include<iostream> #include<vector> #include<string&...

2018-12-22 17:02:57

阅读数 30

评论数 0

数字在排序数组中出现的次数

#include<iostream> #include<vector> using namespace std; int binarySearch(vector&...

2018-12-17 22:50:09

阅读数 13

评论数 0

二分查找

非递归实现 //二分查找非递归版本 #include<iostream> #include<vector> int...

2018-12-17 21:55:52

阅读数 19

评论数 0

数组/向量

C风格数组 int arr1[10]; arr1实际上是一个指向大到足以存储10个int型量的内存指针; 大小由程序员确定 内存快可以通过new[]分配,但此后必须通过delete[]释放 内存块不能调整大小(但可以获得一个新的、根据推测可能更大的内存块,并利用原来的内存块初始化,然后将原内存块...

2018-12-13 08:45:51

阅读数 120

评论数 0

散列表

散列表及其查找 1. 散列的概念 散列表(hash table)是表示查找结构的一种有效方法。通过将关键码映射到表中某个位置来存储元素,然后根据关键码用同样的方式来直接访问。存储位置与关键码之间的对应函数关系 Address = hash(key) 。 2. 常见散列函数 直接定址法 除留余数法...

2018-12-11 19:08:12

阅读数 21

评论数 0

统计数组中的逆序对

在归并排序的基础上添加几行代码就可以解决了,对比另一篇归并排序的代码:https://blog.csdn.net/weixin_40804971/article/details/84889575 区别:为了统计逆序对,需要先将大值放进temp数组,另一篇里的归并排序是先将小值放进temp数组 ...

2018-12-09 09:13:59

阅读数 38

评论数 0

归并排序

c++实现 #include <iostream> using namespace std; void merge(int array1[], int first, int last){ int mid = (first + last...

2018-12-09 09:13:12

阅读数 32

评论数 0

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