自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 Java线程池的七大参数

java多线程开发时,常常用到线程池技术,这篇文章是对创建java线程池时的七个参数的详细解释。线程池的构造函数有7个参数,分别是corePoolSize、maximumPoolSize、keepAliveTime、unit、workQueue、threadFactory、handler。下面会对这7个参数一一解释。一、corePoolSize 线程池核心线程大小线程池中会维护一个最小的线程数量,即使这些线程处理空闲状态,他们也不会 被销毁,除非设置了allowCoreThreadTimeOut。这里

2021-01-19 16:22:04 146

原创 线程的生命周期及之间的转换.

1、新建状态(new):使用new创建一个线程,仅仅只是在堆中分配了内存。新建状态下,线程还没有调用 start()方法启动,只是存在一个线程对象而已Thread t = new Thread(); //这就是t线程的新建状态2、可运行状态(Runnable):新建状态调用start()方法,进入可运行状态。而这个又分成两种状态,ready和running,分别表示就绪状态和运行状态就绪状态:线程对象调用了 start() 方法,等待 JVM 的调度,(此时该线程并没有运行)运行状态

2020-08-04 18:00:53 193

原创 什么是线程安全问题,为什么会出现?怎么解决

线程安全问题:在操作系统中,进程之间的数据是隔离的。但是注意:如果是一个进程里面多个线程,线程之间是共享一个进程的在Java中,如果使用多个Thread线程启动同一个Runable的线程对象,此时这些线程会共享Runable对象中的属性,就容易出现线程安全问题(非线程安全问题)。什么是线程安全的?如果你的代码所在的进程中有多个线程在同时运行,而这些线程可能会同时运行这段代码。如果每次运行结果和单线程运行的结果是一样的,而且其他的变量的值也和预期的是一样的,就是线程安全的。或者说:一个类或者程序所

2020-08-04 17:39:22 390

原创 volatile关键字

Volatile是一个类型修饰符,被设计用来修饰被不同线程访问和修改的变量。在程序设计中,尤其是C语言、C++、C#和Java语言中,使用Volatile关键字声明的变量或对象通常拥有和优化和(或)多线程相关的特殊属性。如果没有volatile,基本上会导致这样的结果:要么无法编写多线程程序,要么编译器失去大量优化机会。Volatile的作用:作为指令关键字,确保本条指令不会因编译器的优化而省略,且要求每次直接读值。简单来说就是防止编译器对代码进行优化比如如下程序:XBYTE[2]=0x55;XBYT

2020-08-04 17:22:21 82

原创 synchronized和Lock的区别

Synchronized 和 Lock的概念Synchronized 是Java 并发编程中很重要的关键字,另外一个很重要的是 volatile。Syncronized 的目的是一次只允许一个线程进入由他修饰的代码段,从而允许他们进行自我保护。Synchronized 很像生活中的锁例子,进入由Synchronized 保护的代码区首先需要获取 Synchronized 这把锁,其他线程想要执行必须进行等待。Synchronized 锁住的代码区域执行完成后需要把锁归还,也就是释放锁,这样才能够让其他线.

2020-08-04 17:13:10 181

原创 简述HashMap、Hashtable、ConcurrentHashMap三者间的异同

1、Map的概念Map用于存储“key-value”元素对,它将一个key映射到一个而且只能是唯一的一个value。Map可以使用多种实现方式,HashMap的实现采用的是hash表;而TreeMap采用的是红黑树。2、HashMap实现了Map接口,实现了将唯一键隐射到特定值上。允许一个NULL键和多个NULL值。非线程安全。1、jdk1.2提供,线程不安全的​ 2、初始化的数组长度是16,是2的幂次方​ 3、jdk8之后,如果链表的长度大于8,这

2020-07-29 09:21:11 105

原创 异常处理

1.异常概述与异常体系结构在使用计算机语言进行项目开发的过程中,即使程序员把代码写得尽善尽美,在系统的运行过程中仍然会遇到一些问题,因为很多问题不是靠代码能够避免的,比如:客户输入数据的格式,读取文件是否存在,网络是否始终保持通畅等等。异常:在Java语言中,将程序执行中发生的不正常情况称为“异常”。 (开发过程中的语法错误和逻辑错误不是异常)Java程序在执行过程中所发生的异常事件可分为两类:Error:Java虚拟机无法解决的严重问题。如:JVM系统内部错误、资源耗尽等严重情况。比如:S

2020-07-25 22:42:14 133

原创 系统常见类

Object类Object类的作用:— 在Java中,所有的类 ,不管有没有定义其父类,都以Object类作为直接或间接的父类。—也就是说,所有的类都继承Object类。—Object类定义了基本的成员变量和成员函数。1.对象间的比较2.将对象转换成字符串toString()3.线程的等待与通知4.返回对象所属的类getClass()Class类在java中,每个class类都有一个相应的class对象。也就是说,当我们编写一个类,编译完成后,在生成的.class文件中,就会产生一个

2020-07-25 22:36:59 333

原创 面向对象

Java面向对象学习得三条主线​ 1.Java类及类的成员:属性、方法、构造器、代码块、内部类​ 2.面向对象得三大特征:封装性、继承性、多态性、(抽象性)​ 3.其他关键字:this、super、static、final、abstract、interface、package、import1.1 面向过程(POP)与面向对象(OOP)概述二者都是一种思想,面向对象是相对于面向过程而言的。​ 面向过程,强调的是功能行为,以函数为最小单位,考虑怎么做。​ 面向对象,将功能封装进对象,.

2020-07-19 15:17:43 67

原创 数组中涉及到的常见算法

1.数组中涉及到的常见的算法数组元素的赋值(杨辉三角、回形数等)求数值型数组中元素的最大值、最小值、平均数、总和等数组的复制、反转、查找(线性查找、二分查找等)数组元素的排序算法(面试题重点)1.1数组元素的赋值(杨辉三角、回形数等)测试用例://使用二维数组打印一个10行的杨辉三角public class YangHui_Test { public static void main(String[] args) { //1.声明并初始化数组 int[][] arr = n

2020-07-19 15:12:44 223

原创 JAVA-JDK的安装过程

一.什么是JDK和JRE。JDK(java Development Kit Java开发工具包)JDK是提供给Java开发人员使用的,其中包含了java的开发工具,也包含了JRE。所以安装了JDK就不用再单独安装JRE了。其中的开发工具:(javac.exe)编译工具 打包工具(jar.exe)JRE(Java Runtime Environment Java运行环境)包括Java虚拟机(JVM Java Virtual Machine)和Java程序所需的核心类库等,如果想要运行一个开

2020-07-19 15:08:30 80

原创 数组

1.数组定义:​ 是多个相同类型得数据按一定顺序排列得集合,并使用一个名字命名,并通过编号得方式对这些数据进行统一管理常见概念:数组名角标、下标(或索引)元素数组得长度(元素得个数)特点:​ 数组是有序排列得说明:​ 数组本身是引用数据类型,而数组中得元素可以是任意数据类型,包括基本数据类型和引用数据类型创建数组对象会在内存中开辟一整块连续得空间,而数组中引用得是这块连续空间得首地址数组得长度一旦确定。就不能修改可以直接通过下标(或索引)得方式调用指定位置得

2020-07-15 17:45:41 77

原创 运算符和循环

一.运算符定义:运算符是一种特殊的符号,用以表示数据的运算、赋值和比较等。分类:算数运算符、赋值运算符、比较运算符(关系运算符)、逻辑运算符、位运算符、三元运算符。1.算数运算符的测试用例:/*运算符:% (前)++ (后)++ (前)-- (后)-- +(拼接运算)*/public class Ari_Test {public static void main(String[] args) {// / 除号运算(数学运算中取商)int num = 14;i

2020-07-15 17:40:40 242

原创 变量和数据类型

变量:在程序运行中可以发生变化的量叫做变量。变量是一块具有名称的内存。在JAVA中, 先声明变量后进行赋值。数据类型:基本数据类型int byte short long --整数型float 单精度浮点数double 双精度浮点数 --浮点型true 真false 假 --布尔类型char --字符类型 (用单引号引起来)引用数据类型对象 List Set Map 数组 字符串 万物皆可对象...

2020-07-02 20:00:08 57

空空如也

空空如也

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

TA关注的人

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