自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(17)
  • 资源 (1)
  • 收藏
  • 关注

原创 JAVASE学习笔记 多线程间通信经典练习题

多线程间通信经典练习题1.两个线程间的通信问题上节我们大家一起探索了多线程通信问题,了解了线程之间的等待唤醒机制。下面我们也可以通过一些练习题更加深入的去理解多线程之间的通信。1.两个线程间的通信问题写两个线程,一个线程打印 1—52一个线程打印 A—Z打印结果是: 12A34B56C78D710E------5152Z分析:方式一:利用继承Thread类来实现两个线程间的通信问题public class MyObject { //定义一个标记 public boole

2021-01-30 21:35:26 542 3

原创 JAVASE小白笔记 多线程通信(线程之间的等待唤醒机制)

线程通信1.线程通信概述2.实例阐述线程间的等待唤醒机制生产者与消费者问题,也称为有限缓冲问题,是多线程同步问题的经典案例。今天我们来详细的来进行探索下。1.线程通信概述生产者与消费者问题描述了两个或者多个共享固定大小缓冲区的线程–即所谓的"生产者"和"消费者",在实际运行中发生的问题。生产者的主要作用是生成一定量的数据放到缓冲区中,然后重复此过程。与此同时消费者也在缓冲区消耗这些数据。该问题的关键就是要保证生产者不会在缓冲区满时加入数据,消费者也不会在缓冲区空时消耗数据。生产者与消

2021-01-30 11:50:19 412 1

原创 JAVASE学习笔记 多线程之死锁问题的概述与使用

多线程之死锁问题的概述与使用1.死锁问题的概述1.死锁问题的概述死锁是一种无限的互相等待的状态,两个或两个以上的线程或进程构成一个互相等待的环状。以两个线程为例,线程一持有A锁同时在等待B锁,而线程二持有B锁同时在等待A锁,这就导致两个线程互相等待无法往下执行。不同的线程分别锁住对方需要的同步监视器对象不释放,都在等待对方先放弃时就形成了线程的死锁。一旦出现死锁,整个程序既不会发生异常,也不会给出任何提示,只是所有线程处于阻塞状态,无法继续。现实生活中一个经典的死锁情形就是四辆汽车通过没有红绿灯的十

2021-01-28 23:06:38 362

原创 JAVASE学习笔记 多线程安全问题的解决方式--同步代码块、同步方法以及Lock锁的使用

线程安全问题的解决方式1.同步代码块如何解决线程安全问题呢?前面我们已经说过了解决思路:对于多条共享数据的语句,只能让一个线程都执行完,在执行过程中,其他线程不可以参与执行。为了解决这个问题,Java的多线程支持引入同步监视器来解决这个问题。使用同步监视器的方式有两种:同步代码块以及同步方法。1.同步代码块同步代码块的语法格式如下:sychronized(同步监视器对象){//不能在括号中直接new对象,new了就没效果了需要被同步的代码块}同步代码块注意事项这个同

2021-01-28 22:01:18 671 3

原创 JAVASE学习笔记 实例探索多线程安全问题

实例探索多线程安全问题1.利用继承Thread类的方式卖电影票2.实现Runnable接口的方式卖电影票3.线程安全问题的实例发生临近春节,各大电影院都在筹备准备上映贺岁大片。假设某家电影院持有唐探3的票100张,而且它总共有三个售票窗口,请设计一个程序模拟该电影院进行售票。1.利用继承Thread类的方式卖电影票事件具体分析1.三个窗口其实就是三个线程2.定义票的数量为100张(为静态变量,被3个线程所共享3.创建线程对象,启动线程,每卖一张票,票的数量就减1

2021-01-27 21:38:13 1466 5

原创 JAVASE学习笔记 多线程中的线程调度与线程控制

目录1.线程调度2.线程控制2.1 线程控制之休眠线程2.2 线程控制之守护线程多线程中的线程调度与线程控制是使用多线程的常见的操作,掌握这些对于我们使用多线程更加有帮助。1.线程调度假如我们的计算机只有一个CPU,那么CPU在某一个时刻只能执行某一条指令。线程是并发的,只有抢到CPU时间片, 也就是使用权,才可以执行命令。那么Java是如何对线程进行调度的呢?在Java中是通过调度模型(抢占式调度模型)来进行线程调度的。有两种调度模型:分时调度模型与抢占式调度模型。两种调度模型模型

2021-01-26 16:13:53 540

转载 一文带你玩转图像超分辨重建技术

今天看到了一篇图像超分辨重建的博客,内容写的非常好,里面附有代码的实现,大家可以阅读收藏

2021-01-25 16:30:08 243

原创 JAVASE学习笔记 多线程代码实现的多种方式

目录1.多线程的实现方式1.1 多线程代码实现方法一:继承Thread类1.2 多线程代码实现方法二:实现Runnable接口1.3 多线程代码实现方法三:实现Callable接口总结我们都了解在命令窗口输入Java.exe命令会启动JVM,等于启动了一个应用程序。开启JVM相当于开启一个线程,该线程会自动的启动一个"主线程",然后主线程去调用某个类的main()方法。所以main()方法运行在主线程。那么大家是不是有这样一个疑问:JVM的启动是多线程的吗? 答案是肯定的,JVM的启动至少

2021-01-25 16:04:07 416

原创 JAVASE学习笔记 一文带你理解操作系统的进程与线程

进程与线程对于程序员来说,真的是天天都可以看到。但天天见,不见得我们

2021-01-25 11:20:52 452

原创 JAVASE学习笔记 利用定时类与日期类来实现定时关闭计算机的任务

在现实生活中,尤其是在互联网运营的过程中,需要程序员定时的去做某件事情。今天我们很简单的模拟下,简单地进行定时关闭计算机这个任务。

2021-01-22 20:56:59 245

原创 JAVASE学习笔记 利用日期类来实现计算你来这个世界多少天了(利用SimpleDateFormat类实现)

时间过得飞快,我们都在时光中渐渐成熟长大,也要学会自己仗剑走天涯。自己学习Java也很长时间了,今天心血来潮想用程序来计算下自己来这个世界多少天了。编写一个Java程序来实现计算自己来到这个世界多少天了public class MyTest { public static void main(String[] args) throws ParseException { //计算你来这个世界多少天 Scanner scanner = new Scanner(S

2021-01-22 20:31:00 1960

原创 JAVASE学习笔记 超强大的数组工具类--Arrays工具类

在java中,对于数组的操作提供一个Arrays类工具,专门针对数组提供一些方法(静态方法)。下面是对于Arrays工具类的常用方法进行说明。1.Arrays类工具的拼串方法案例:给定一 数组{1,2,3}将数组中的元素,拼接成一个漂亮的字符串[1,2,3]。将数组的元素进行拼串的常用方法方法一:可以通过StringBuffer类或者StringBuilder类进行操作方法二:可以通过Arrays类工具进行操作,Arrays工具类中含有一个toString()方法对数组进

2021-01-19 21:13:09 261

原创 JAVASE学习笔记 详解数据结构与算法中的基本查找与二分查找

1.基本查找(顺序查找)顺序查找又叫做线性查找,是最基本的查找方法。基本查找的流程1.从表中的第一个或者最后一个记录开始,逐个对比该记录中的关键词与待查找关键词是否相等。2.如果某条记录中的关键词与待查找关键词相等,则表示查找成功,返回所查找记录;如果直到最后一条记录,其关键词与待查找关键词都不相等,则查找失败下面是用实例进行说明基本查找:假设给定一数组{10,8,3,6,5,7,1,4,2,9},查找此数组中元素5,如果有此元素就返回元素的索引值。如果没有查找到此元素,

2021-01-19 16:19:10 259 1

原创 JAVASE学习笔记 Java中数组排序算法-快速排序

1.快速排序的引入快速排序是从冒泡牌序演变而来的算法,但是要比冒泡排序高效很多,所以叫做快速排序。快速排序排序之所以快速,是因为此算法采用分治法。同冒泡排序一样,快速排序也属于交换排序,通过元素之间的比较和交换位置来达到排序的目的。不同的是,冒泡排序在每一轮只将一个元素冒泡到数组的一端,而快速排序在每一轮挑选一个基准元素,并让其他比它大的元素移动到数列的一端,比它小的元素移动到数组的另一端,从而将数组拆分为两部分。2.快速排序的排序思想2.1 快速排序的核心思想:分治法

2021-01-19 14:06:44 252

原创 JAVASE学习笔记 Java中数组排序算法-直接插入排序

1.直接插入排序的引入在理解直接插入排序,可以从生活中的一些实例出发。在扑克牌的规则中有一种出牌的方式是顺子,也就是打出一组连续数字的牌,所以我们经常需要对手中的牌进行排序操作。人们经常对手中的牌如何排序?举个例子:比如我手里面有红桃6,7,9,10这四张牌,已经处于升序状态。这个时候我又拿到一张红桃8,如何将手中的五张牌重新处于升序状态?用冒泡排序,还是选择排序?就像玩牌一样,排序算法也是利用类似的思想:维护一个有效区,把元素一个一个插入到有序区的适当位置,直到所有元素有序为止。2.插入排

2021-01-14 12:50:33 272

原创 JAVASE学习笔记 Java中数组排序算法-选择排序

1.回顾冒泡排序前面我们已经介绍了冒泡排序,假设我们要获得升序数列,冒泡排序的原理为:就是把每一个元素和下一个元素进行比较和交换,使得较大的元素像气泡一样向右侧进行移动。 移动如下图所示。这样一来,每一轮操作都可以把一个最大元素移动到最右侧,经过多轮操作,无序的数列成为了升序数列:但是冒泡排序的有一个明显弊端:元素交换的次数太多,在程序运行的世界里,虽然计算机并不会产生什么“负面情绪”,但是频繁的数组元素交换意味着更多的内存读写操作,严重影响了代码运行效率。2.选择排序的原理选择排序:每一次拿

2021-01-04 15:40:54 237 1

原创 JAVASE学习笔记 Java中数组排序算法-冒泡排序

1.冒泡排序的概述冒泡排序(Bubble Sort),是一种计算机科学领域的较简单基础的排序算法。其基本思路是,对于一组要排序的元素列,依次比较相邻的两个数,将比较小的数放在前面,比较大的数放在后面,如此继续,直到比较到最后的两个数,将小数放在前面,大数放在后面,重复步骤,直至全部排序完成。2.冒泡排序的具体流程假设待排序序列为 (5,1,4,2,8),如果采用冒泡排序对其进行升序(由小到大)排序,则整个排序过程如下所示:第一轮排序,此时整个序列中的元素都位于待排序序列,依次扫描每对相邻的元素,

2021-01-04 10:37:05 252

《剑指Offer》Java代码(高清带目录) (1).pdf

剑指offer--java版本,此份资料可以帮助你在面试时所需的java知识。

2021-02-02

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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