自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(8)
  • 收藏
  • 关注

原创 String类为什么是final修饰的

总的来说是为了效率和安全 1.字符串常量池的实现 字符串专门有个字符串池,也只有用final修饰才能实现字符串池 常量池的存在 没有new 关键字的String对象产生时就会存储到字符串常量池,当有同样的内容的String对象产生时,将不再新建对象,节省了堆空间内存,注(String的内容无法改变,引用可改变)这样在大量使用字符串的情况下,可以节省内存空间,提高效率 2.多线程安全 String被...

2020-03-30 16:11:59 756

原创 Lambda表达式

第三章 Lambda表达式 3.1 函数式编程思想概述 在数学中,函数就是有输入量、输出量的一套计算方案,也就是“拿什么东西做什么事情”。相对而言,面向对象过分强调“必须通过对象的形式来做事情”,而函数式思想则尽量忽略面向对象的复杂语法——强调做什么,而不是以什么形式做。 面向对象的思想: ​ 做一件事情,找一个能解决这个事情的对象,调用对象的方法,完成事情. 函数式编程思想: ​ 只要能获取到结...

2020-03-26 14:32:54 182

原创 Java 线程池

第一章 等待唤醒机制 1.1 线程间通信 **概念:**多个线程在处理同一个资源,但是处理的动作(线程的任务)却不相同。 比如:线程A用来生成包子的,线程B用来吃包子的,包子可以理解为同一资源,线程A与线程B处理的动作,一个是生产,一个是消费,那么线程A与线程B之间就存在线程通信问题。 为什么要处理线程间通信: 多个线程并发执行时, 在默认情况下CPU是随机切换线程的,当我们需要多个线程来共同完...

2020-03-25 21:07:03 92

原创 Java 多线程(四)线程状态

第三章 线程状态 3.1 线程状态概述 当线程被创建并启动以后,它既不是一启动就进入了执行状态,也不是一直处于执行状态。在线程的生命周期中, 有几种状态呢?在API中 java.lang.Thread.State 这个枚举中给出了六种线程状态: 这里先列出各个线程状态发生的条件,下面将会对每种状态进行详细解析 线程状态 导致状态发生条件 NEW(新建) 线程刚被创建,但是并未启动。...

2020-03-25 16:05:27 74

原创 Java 多线程(三) 线程安全

2.1 线程安全 如果有多个线程在同时运行,而这些线程可能会同时运行这段代码。程序每次运行结果和单线程运行的结果是一样 的,而且其他的变量的值也和预期的是一样的,就是线程安全的。 我们通过一个案例,演示线程的安全问题: 电影院要卖票,我们模拟电影院的卖票过程。假设要播放的电影是 “葫芦娃大战奥特曼”,本次电影的座位共100个 (本场电影只能卖100张票)。 我们来模拟电影院的售票窗口,实现多个窗口...

2020-03-25 15:46:39 84

原创 Java 多线程(二)创建多线程

1.1 多线程原理 很多同学对原理不是很清楚,那么我们今天先画个多线程执行时序图 来体现一下多线程程序的执行流程。 代码如下: 自定义线程类: public class MyThread extends Thread{ /** 利用继承中的特点 * 将线程名称传递 进行设置 */ public MyThread(String name){ super(name); } ...

2020-03-25 11:47:14 138

原创 Java 多线程(一)

我们在之前,学习的程序在没有跳转语句的前提下,都是由上至下依次执行,那现在想要设计一个程序,边打游戏边听歌,怎么设计? 要解决上述问题,咱们得使用多进程或者多线程来解决. 4.1 并发与并行 并发:指两个或多个事件在同一个时间段内发生。 并行:指两个或多个事件在同一时刻发生(同时发生)。 在操作系统中,安装了多个程序,并发指的是在一段时间内宏观上有多个程序同时运行,这在单 CPU 系统中,每...

2020-03-24 12:31:39 86

原创 Java 堆栈存储问题

Java 中的数据类型分为两大类型 基本类型和引用类型 下面我们来分析一下, 首先是 char a = ’ h '; char是基本数据类型又是类的成员变量,所以在堆中; 从mian方法开始 Person person = new Person(“张三”,18); person的 new 的实体化对象 存储到堆里,栈里存的是 引用名称person 和person实体化对象在堆中的地址; ...

2020-03-06 16:39:47 278

空空如也

空空如也

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

TA关注的人

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