自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 同步方法和同步块

并发问题如果只有一张火车票,但有10个人同时通过12306抢票,为什么不会将票数买成-9,而是其中一个人买到票,其他9个人买不到呢。多个对象同时调用一个方法的现象称为并发,为了不让票买到-9,我们需要给方法加锁。就像商场上厕所(好像我所有老师都拿上厕所举例),上厕所是一个方法,有很多人同时要上厕所,但每个人进去上厕所都会关上门,这个门就是一个锁,让在厕所里的人解决完了再轮到下一个。同步方法 synchronizedsynchronized关键字用在方法上,意思是给方法加了一把锁,也就是给厕所加了一

2022-01-19 16:11:16 504

原创 线程的五大状态和线程操作

线程状态创建状态线程对象创建就进入了创建状态就绪状态调用start(),线程进入就绪状态,但还没有具体执行运行状态执行线程体的代码块时,线程处于运行状态阻塞状态当调用sleep()等方法时,线程进入阻塞状态,线程暂时不执行,等阻塞事件解除后再执行死亡状态线程结束进入死亡状态,进入死亡状态后的线程不能再启动其转换关系如下图线程状态观测Thread.State = NEW已经创建但尚未启动的线程处于此状态Thread.State = RUNNABLE正在Java虚拟机中执行的线

2022-01-18 15:35:32 610

原创 静态代理设计模式

静态代理是什么从前我们聊天是面对面直接交谈,进入互联网时代以后,我们通过聊天软件聊天,那么这个聊天软件就是一个静态代理,它代替我们将信息传递给别人。程序设计同样适用这个逻辑,写一个中间商类,通过中间商调用下面委托类的东西给用户使用,就叫静态代理模式静态代理有什么好处第一、可以隐藏委托类的实现。跟别人网上聊天就可以隐蔽自己的部分信息第二、可以实现客户与委托类间的解耦,可以让中间商做一系列赚差价的举动,而下面的委托类不用做任何改动。静态代理示例真实角色和代理角色都要实现同一个接口代理角色要代理真

2022-01-17 17:39:03 339

原创 lambda表达式

创建函数式接口的对象首先,什么是函数式接口如果一个接口中只有唯一一个抽象方法,那称它为函数式接口通过外部类实现接口是最原始最经典的方式,写一个独立的类来实现接口,这是实现所有接口的正常做法public class DemoLambda { public static void main(String[] args) { Func lambda = new Lambda(); lambda.lambda(); //好好学习! }}//接口in

2022-01-17 15:27:03 325

原创 Java线程的创建

方法一:继承Thread类创建过程继承Thread类重写run(),编写线程执行体调用start()开启线程public class DemoThread extends Thread { //1. 继承Thread类 @Override public void run() { //2. 重写run() super.run(); for (int i = 0; i < 20; i++) { System.o

2022-01-16 19:06:47 153

原创 Java异常处理

为什么要做异常处理用户在使用程序的时候,经常不会按照程序员预想的样子运行,可能需要输入字符串但用户输入了数字,可能用户在计算器中输入了除数0。程序员需要预见这些问题,并提前准备好处理方法,不至于一点不合法的操作就让程序崩溃异常分类异常分为Error和Exception两种Error是严重的错误,会引起程序运行崩溃的Exception是较轻一点的错误,跳过该错误的地点也可以继续运行异常处理关键字try用try修饰代码块,可以检测该代码块中的异常catch与try搭配使用,在捕获到tr

2022-01-16 15:09:16 214

原创 static关键字的作用

static修饰符可以修饰类的成员方法,类的成员变量和匿名代码块static修饰类的成员方法称为静态方法,可以不依赖于对象就访问public class Person { public static String nameIs(){ return "Doris"; } public int ageIs(){ return 23; }}//==================================public cl

2022-01-16 11:16:00 205

原创 面向对象编程的三大特征:封装、继承、多态

封装程序设计要追求“高内聚,低耦合”。高内聚:类的内部数据操作细节在内部自己完成,不能外部干涉。低耦合:仅暴露少量的方法给外部使用,不应该让外部知道类内部的逻辑。最常用的封装例子:get/set方法封装的意义提高程序安全性,保护数据隐藏代码实现细节统一接口增加系统可维护性继承继承的本质是对一些在某些属性上相同的类做抽象,这并不是什么高深的思想,而是人类非常习惯的思想。比如:幼崽喝奶长大的动物是哺乳动物小猫崽子喝奶长大小狗崽子喝奶长大小人崽子喝奶长大所以猫、狗、人都是哺乳

2022-01-15 16:16:23 169

原创 Java构造器

构造器是什么在实例化对象时,即使类中什么方法都没有,但还是可以调用一个与类名相同的方法。 User user = new User();在java文件中,即使类中什么也没有写,编译成class文件后仍然会默认生成一个与类名相同的方法,用于将类实例化。这个方法就是构造器。构造器的分类隐式的构造器只要什么都不写,会默认有一个无参数的构造器显式的构造器显示的构造器又分为无参和有参的构造器无参构造器可以在构造器中加入一些语句用来给对象赋初值Public class User(){ Stri

2022-01-14 14:01:09 105

原创 数组的声明创建初始化

声明数组变量dataType[] arrayRefVar;//dataType填入数据类型//arrayRefVar给数组变量随便起个名字创建数组dataType[] arrayRefVar = new dataType[arraySize];//arraySize给数组设置一个长度数组初始化//静态初始化:创建+赋值int[] a = {1,2,3,4,5};//动态初始化:包含默认初始化int[] b = new int[10];//然后就可以给数组赋值了b[0] = 1

2022-01-14 12:20:33 171

原创 Scanner对象

Scanner对象java.util.Scanner是Java5的新特征,我们可以通过Scanner类来获取用户的输入Scanner s = new Scanner(System.in);Scanner类中常用方法Scanner类中的next()和nextline()方法接受用户的输入。 区别在于:next()方法只能接受整块的输入,输入空格会被识别为结束符nextLine()方法接受整行的输入,输入换行符会被识别为结束符Scanner类中对应的hasNext()和hasNextLine

2022-01-12 16:34:55 111

原创 变量和常量

变量变量分为局部变量、实例变量、类变量局部变量在方法内定义的变量,作用域位于本方法内,即只在本方法内有效。实例变量从属于对象的变量public class User(){ //实例变量 String name = 'Doris'; int age = 20; User user = new User();//初始化对象 System.out.println(user.name);//引用实例变量 //输出 Doris}实例变量有默认值整形为0浮点型为0.0布尔型为f

2022-01-12 10:03:33 147

原创 Java数据类型

强类型语言和弱类型语言强类型语言要求变量的使用要严格符合规定,一定要先定义变量才能使用变量强类型语言的优点是安全性好,稳定,但是相应的运行速度会受到影响如:Java、C等弱类型语言要求没有那么严格,只要不出大事就可以运行优点是速度快,简单灵活,但是没有那么严谨,容易出错,错了还很有可能不知道在哪如:JavascriptJava的数据类型分为两大类基本类型数值类型八大基本数据类型整数类型补码表示byte 占1个字节 -128-127short 占2个字节 -32768~327

2022-01-12 09:35:30 135

原创 一定要写注释

注释的重要性写一点点代码还好,写复杂了写多了,编译器关闭再打开,你就不知道你上一秒写的是什么东西了!或者代码需要给别人看的时候,没有注释就小心人家半夜刀了你所以一定要写注释!Java注释的种类1. 单行注释//单行注释使用双斜杠打头//换行需要再打两个双斜杠2. 多行注释/*这样就可以输入多行注释随便换行都没问题*/3. 文档注释/**多行注释每行多加一个星号* 可以在里面加参数 */IDEA更改注释样式Settings->Editer->Color Sc

2022-01-11 12:10:58 187

原创 两种程序运行机制:编译型和解释型

分为编译型和解释型编译型指先将整个源程序翻译成机器语言,然后再让机器执行。比如C/C++就是编译型解释型指翻译一句机器运行一句java属于混合型先将源程序(.java文件)经过java编译器编译成为字节码(.class文件),然后将class文件经过类装载器、字节码校验器、解释器,交给操作系统平台运行...

2022-01-11 11:06:19 550

空空如也

空空如也

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

TA关注的人

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