自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 字符串的定义形式总结

1、使用字符串常量“imooc“创建对象,会先去常量池中查看"imooc"是否存在,如果存在就直接赋值给字符串引用s。如果不存在,就先在常量池中创建字符串"imooc",然后再赋值给字符串引用s。String s = "imooc";2、使用new关键字创建字符串对象,字符串的值为一个空串""String s = new String();3、使用new关键字创建的字符串会先去堆中创建一个对象,然后会去常量池中对比一下,如果常量池中没有,就放一份在常量池,如果有,则不会再往常量池中放了。Str

2021-07-30 16:23:22 646

原创 包装类的比较

拆箱后的数据是基础数据类型。用 == 判断相等性,比较的都是数值,如果是字符,比较的是ASCII值public static void main(String[] args){ int a = new Integer(65);// 拆箱 int b = 65; char c = new Character('A'); System.out.println(a == b);// true System.out.println(a == c);// true}装箱后如果用 == 比较对象.

2021-07-30 16:00:24 567

原创 Java中的装箱&拆箱

Java为每种基本数据类型都提供了对应的包装类,而且还提供了包装类与基本数据类型之间的互相转化机制,也就是所谓的“装箱”和“拆箱”。概念:装箱:把基本数据类型转换成包装类的过程。拆箱:把包装类转换成基本数据类型的过程。分类:从实现的角度而言,可以分为“手动拆装箱”与“自动拆装箱”的操作。手动装箱:可以结合类型的构造方法或者valueOf()方法实现。手动拆箱:可以通过xxxValue()方法实现。自动装箱:把一个基本类型变量直接赋值给对应的包装类变量。自动拆箱:允许把包装类对象直接赋

2021-07-30 15:13:04 1232

原创 常见异常类型及原因分析

ArithmeticException1.异常说明:数学运算异常2.出现条件:涉及到数学运算的地方可能出现失误,比如程序中出现了除以零这样的运算3.示例演示:public static void main(String[] args){ int one = 12; int two = 0; System.out.println(one/two);}NumberFormatException1.异常说明:数字格式化异常2.出现条件:涉及到类型转换时,比如不符合转换格式的字符串被转.

2021-07-19 21:48:06 585

原创 枚举的应用

枚举的基本使用一、什么是枚举在生活中,我们可能会遇到这种问题:1、把0-9之间的整数列出来2、列出每周星期一到星期天的内容那么我们为了回答这些问题,就会把0-9和星期几的内容一一列出来,这种方式就是枚举。在Java语言中,也可以使用枚举,枚举可以看成是一些常量的集合,以星期为例,多个值之间用逗号分隔,定义如下:enum Week{MONDAY,TUESDAY,WEEDNESDAY,THURSDAY,FRIDAY,SATURDAY,SUNDAY}其中,enum是定义枚举类型的关键字,Week是

2021-07-17 11:20:09 823

原创 接口中的内部类应用

我们在实际开发过程中,如果想要创建某些公共代码,使得它们可以被某个接口的所有不同实现所共用,那么接口内部的嵌套类会显得很方便。也就是说,在接口中可以含有内部类,实现类可以根据各自的需求进行有针对性的复用和调整。在这里,将结合案例分别展示接口中放置普通成员内部类和抽象成员内部类的特点及应用。譬如下例所示:定义接口IOuterInterface,其中分别定义了常量TEMP、抽象方法abMethod、默认方法deMethod、静态方法stMethod、普通成员内部类InnerClass和抽象成员内部类AbI

2021-07-17 09:47:34 497 1

原创 向上转型和动态绑定机制

多态的实现可以借由向上转型和动态绑定机制来完成,其中,向上转型实现了将子类对象向上转型为父类类型;而动态绑定机制能识别出对象转型前的类型,从而自动调用该类的方法,两者相辅相成。语法:向上转型又称为自动转型、隐式转型。即是父类引用指向子类实例,也表示子类的对象可以赋值给父类的对象。向上转型是安全的,因为任何子类都继承并接收了父类的非私有成员方法。绑定机制绑定就是将一个方法调用同一个方法所在的类连接一起。Java中存在静态绑定和动态绑定。其中,静态绑定是指在程序运行之前进行绑定(由编译器和链

2021-07-12 22:37:54 209 1

原创 关于单例模式的常见问题

1、public staic SingletonOne getInstance(){}a、该方法为什么用静态的?为什么要用这个类的类型作为返回值?getInstance()方法的作用是实现该类对象的返回,因此需要设置改类类型作为方法放回值;至于static,则是因为对于单例模式而言,需要载类外能在无需产生对象实例的情况下,完成这个方法的调用,因此该方法需要设置为static。b、只能叫这个名字吗?方法名并不限定,只是一种推荐命名,见名如义。2、关于对象实例化、对象引用、对象声明的关系完整的对象实

2021-07-01 16:35:17 281

原创 关于Objecg的常见问题

1、==到底比较的是值还是地址?==比较的是变量里存储的值,不过,对于基本数据类型而言,变量里存储的是数组,因此==比较的是数值是否相等;而对于饮用数据类型(例如String、自定义类等),变量里存的是对象的内存地址,因此,==默认比较的是是否指向同一内存空间,也就是地址是否相同。2、下面代码中A)如果是比较one和two的,那么,哪一个是当前对象哪一个是传入对象?B)为什么obj需要强制转化?C)if语句,为什么第一个表达式用到equals而第二个用到==呢?D)if语句,可以两个都用equa

2021-07-01 16:14:11 90

原创 static关键字的应用

static是Java中常用的关键字,代表“全局”或者“静态”的意思。关于static的特征,可以理解为:方便在没有创建对象的情况下来进行某些操作。通常可用于修饰成员变量和方法,也可以形成静态代码块。实际应用中,可将需频繁操作、通用型信息设置、公共组件封装等操作设置为“静态”。应用一:static+成员变量vs成员变量概念:静态成员:用static修饰的成员变量,通常也成为静态成员、静态属性、类成员、全局属性等。非静态成员:没有被static修饰的成员变量,也称为叫做非静态成员、实例变量,实例成员

2021-06-30 15:16:25 199 1

原创 package和import应用的常见问题

1、为什么需要打包,都放在一起使用不行吗?为便于大型应用程序中信息管理,解决协同工作时类的命名冲突的问题,Java引入了"包管理"机制类似于计算机管理系统中的文件夹。基于合理分类,便于管理的思想,约定:推荐将一组相互具有联系并组合起来完成某一功能的类聚集到同一个包中。同一个包中,类名不允许重复。不同包中,可以存在同名类。2、包管理语句使用规则是什么?1.语法规则package:作用:指明该文件中定义的类所在的包。语法格式:package 报名;包名推荐定义格式:域名倒序.模块.功

2021-06-30 14:51:15 456

原创 构造方法常见问题总结

1、构造方法与类中成员方法的区别是什么?1.作用构造方法:用于生成并初始化对象,针对不同的初始化状态,设置不同参数的构造方法。成员方法:根据类型所需任意功能,进行方法设置。2.格式构造方法:访问修饰符 类名(参数列表){*********}成员方法:访问修饰符 返回值类型 方法名(参数列表){*********}3.特点构造方法:(1)方法名必须与类名相同,包括大小写。(2)没有返回值,也不能用void修饰。(3)如果在定义类时没有定义构造方法,则编译系统会自动插入一个无参数且无方法体

2021-06-29 15:35:48 362

原创 this关键字的应用

一、调用属性和方法this是Java中常用的关键字,代表当前对象本身,可以理解为:指向当前对象的一个引用。this在Java中可用于调用成员属性、成员方法、构造方法,也可以当作参数进行方法传参以及方法返回值。应用1:this.成员属性示例:分别在run和eat方法中,通过this访问属性month和namepublic class Cat{ //成员属性:年龄,昵称 int month; String name;//昵称 //成员方法:跑动 public void run(int mo

2021-06-29 14:26:18 458 1

原创 就近原则总结

关于在Java方法调用传参时涉及到的“就近原则”,通俗来说可以理解为“有需要,找最近的”。请注意:此处的“最近”,不仅是简单的代码编写位置,物理显示的近,更是指逻辑含义上的近,即可访问范围内的最近。譬如,在如下代码中,分别定义了Cat和CatTest类,其中Cat类中包含属性month,方法run。在CatTest中实例化Cat对象one,调用了run方法,最后在输出语句中显示属性month的值。public class Cat{ //成员属性:年龄 int month;//年龄 int类型默认值

2021-06-29 11:28:01 1076

原创 Java内存管理之堆和栈

栈: 每个方法(Method)在执行时,都会创建一个栈帧,用于存储局部变量表、操作数、动态链接、方法出口等信息。需要注意,栈中所存储,多用于保持局部信息的值,譬如:方法体中的基本数据类型定义的变量、对象的引用(也称为对象实例)等。当局部作用范围结束时,栈内信息立即自动释放。当存储内容是由基本数据类型(byte、short、int、long、float、double、char、boolean)声明的局部变量时,在栈中存储的是它们对应的具体数值。当存储的局部的对象的引用(定义在方法体中的引用类型的变量),

2021-06-29 11:02:58 119 1

原创 关于javadoc命令

1、假设ArgsDemo3.java文件存储在E:imooc目录下,代码如下:/*** 关于可变参数列表和重载的问题* @author imooc* @version 1.0**/public class ArgsDemo3 {//可变参数列表所在的方法是最后被访问的。/*public int plus(int a,int b){System.out.println("不带可变参数的方法被调用!");return a+b;}*/public int plus(int...

2021-06-26 22:22:55 234 1

原创 可变参数列表与数组作为参数的区别

1、可变参数列表作为参数,方法调用时可以传入0或多个参数,传入数组也可以。数组作为方法参数,方法调用时只能传入数组。如:已知求和的方法:public int sum(int... n){ int s = 0;//存放整数后 for(int n1:n){ s += n1; }}如下的方法调用形式都是正确的:ArgsDemo ad = new ArgsDemo();int s = 0;s = ad.sum();s = ad.sum(1);s = ad.sum(1,2);int[]

2021-06-26 22:15:09 578

原创 Java方法重载

方法重载的规则方法名相同,参数列表不同。参数列表不同包括,参数的个数和类型不同。如果只有参数名不同,不能算作方法重载。如下三个方法是重载方法,它们的参数列表都是不同的。public void display(){}public void display(int n){}public void display(float n){}如下两个方法不是重载方法,两个方法只是参数名不同,不满足方法重载条件。public void display(int n){}public void disp.

2021-06-26 21:27:03 129

原创 三种循环结构的应用场景

1、从for循环的结构看,三个表达式会依次被执行到,执行的顺序也是固定的,所以for循环适用于循环次数固定的场景。for(int i=1; i<=10; i++){ System.out.println(i);}2、while循环,只有一个判断条件,结果为布尔值,如果为true就执行循环,为false就不执行。所以while循环适用于不知道循环次数,只知道循环达到某个条件可以执行时使用。在循环内,一般需要对循环变量进行改变,否则会发生死循环。int i=1;while(i<=5)

2021-06-18 21:48:54 3379

原创 多种数据类型的接收方法

接收数据方法intnextInt()longnextLong()floatnextFloat()doublenextDouble()字符串类型next()布尔类型nextBoolean()案例如下:Scanner sc = new Scanner(System.in);// 1.从键盘接收int类型数据int n = sc.nextInt();// 2.从键盘接收long类型数据long l = sc.nextLong();//...

2021-06-16 22:20:17 771

原创 Java中常见的转义字符

转义字符是一些有特殊意义的字符,用来表示常见的不能显示的字符。下面介绍一些常见的转义字符和他们所对应的意义转义字符意义ASCII码值(十进制)\b退格(BS),将当前位置移到前一列008\f换页(FF),将当前位置移到下页开头012\n换行(LF),将当前位置移到下一行开头010\r回车(CR),将当前位置移到本行开头013\t水平制表符(HT),(跳到下一个TAB位置)009\代表一个反斜线字符|092’代表一个单引号(

2021-06-11 14:38:03 1143

原创 Java基本数据类型的范围

类型位字节最小范围最大范围byte81-2^72^7-1short162-2^152^15-1int324-2^312^31-1long648-2^632^63-1

2021-06-11 14:30:11 1095 1

原创 Java中的关键字和保留字

关键字Java中的关键字是对编译器有特殊意义的词。比如class是用来定义类的关键字,编译器遇到class就知道这是定义了一个类。abstractbooleanbreakbytecasecatchcharclasscontinuedefaultdodoubleelseextendsfalsefinalfinallyfloatforifimplementsimportnativeintinterfacelonginstan.

2021-06-11 13:43:02 1502

原创 Eclipse中导入源码后出现乱码问题的解决方案

在Eclipse中导入源码后,如果代码中存在中文,可能会产生中文乱码问题。在Eclipse左侧工程栏中找到自己导入的工程,打开.java文件后出现乱码问题。在工程名上右键,选择properties在Resource项的右侧找到Text file encoding,默认选中的是Inherited from container(GBK),选择Other,在右侧的下拉列表中选择UTF-8,然后点击右下方的Apply and Close即可。...

2021-06-11 12:58:33 1614

原创 Eclipse如何导入源码

下载源码的压缩文件并解压打开Eclipse,在Eclipse的左上角,选择菜单File—>import出现如下图所示界面,在界面中选择General下的Existing Projects into WorkSpace,点击Next在出现的如下图所示的界面中勾选Select root directory,点击右侧的Browse进行工程所在位置选择在弹出的下图所示的选择文件夹界面中,找到解压后项目文件夹所在的位置,点击选择文件夹在如下图所示界面中出现要导入的源码工程,最后点击Finis.

2021-06-11 12:46:59 9556 4

原创 线程的状态及触发时机

线程5个状态:新建、就绪、运行、阻塞、死亡

2021-06-03 18:41:52 131

原创 实现多线程的三种方式

1、继承thread2、实现runnable3、实现cllable

2021-06-03 18:41:05 106

原创 Java IO中有几种类型的流

&输入流输出流字节流InputStream、FileInputStream、BufferedInputStreamOutputStream、FileOutputStream、BufferedOutputStream字符流Reader、FileReader、InputStreamReader、BufferedReaderWriter、FileWriter、OutputStreamWriter、BufferedWriter...

2021-06-03 18:39:49 92

原创 hashcode()与equals()的区别

hashCode()与 equals()的区别:hashCode返回一个int值,代表该对象内部地址,速度比equals快,但是并不可靠,部分情况下不相等的对象具有一样的hashCode,取决于hash算法。equals()方法用来判断两个对象是否相同,相对比较慢,考虑的比较多序号描述1两个对象如果equals()成立,hashcode()一定成立2如果equals()不成立,hashcode()可能成立3如果hashcode()成立,equals()不一定成立

2021-06-03 18:36:34 191

原创 List与Set的区别

1、ArrayList 底层是使用的是静态数组来实现的,也就是普通的顺序表,元素之间是一对一的线性关系2、LinkedList底层使用的是链表形式来实现,每一个结点都有一个指针域,该指针域存储的是指向下一个结点的内存地址,当需要进行元素查找的时候,顺着这个链表的头结点依次的往下查找,直到找到或者是没找到,链表的实现也有两种方式,可以使用指针,称之为动态链表,也可以使用静态数组来实现,称之为静态链表,静态链表中每个结点有两个域,一个是存储的数据的,称之为数据项,一个是存储的是下一个结点的下标,成为游标。静态

2021-06-03 18:33:31 113

原创 String、StringBuilder和StringBuffer的区别

&StringStringBufferStringBuilder执行速度最差其次最高线程安全线程安全线程安全线程不安全使用场景少量字符串操作多线程环境下的大量操作单线程环境下的大量操作

2021-06-03 18:28:45 66

原创 Java的异常体系

Exception代表所有错误的总称,要强制进行trycatch或者throw。RuntimeException代表运行时期的异常,不需要强制trycatch 或者throw。

2021-06-03 18:24:17 42

原创 类的执行顺序

1、静态优先2、父类优先3、非静态块优先于构造函数执行顺序:父类静态块子类静态块父类非静态块父类构造方法子类非静态块子类构造方法

2021-06-03 18:23:32 299

原创 静态和实例变量(方法)的区别

1)语法区别:静态变量前要加static关键字,实例则不用2)隶属区别:实例变量属于某个对象的属性,而静态属于类3)运行区别:静态变量在JVM加载类自己码创建,实例变量在实例化对象时创建。静态变量是无法被垃圾回收的,实例变量(new 创建)不再使用时,垃圾回收掉;静态变量存放在JVM的方法区中,而实例变量存放在对象堆的内存中。...

2021-06-03 18:22:22 222

原创 面向对象三大特性

面向对象三大特征:封装:将同一类事物的特征和功能包装在一起,只对外暴露其接口,使用者只需调用不需知道底层实现。好处在于便于分工合作,利于代码解耦,可以自由修改类的内部结构;继承:在已有类中派生新的类,子类可以继承父类的属性和方法并扩展新的内容。一个子类只能有一个父类,父类是子类的抽象化而子类是父类的具体化;多态:三大特征中最重要的操作,是同一个行为具有不同表现形式的能力,多态是一个接口,使用不同的实例执行不同的操作接口与抽象类的异同:相同点不同点都是上层抽象抽象类可包含方

2021-06-03 18:18:00 82

原创 JDK、JRE、JVM的区别

JDK:JAVA程序开发包,通过JDK编写Java的程序;JRE:JAVA运行环境,提供Java的一些标准实现和基本类库;JVM:JAVA虚拟机,只认识 .class 字节码的文件,可以将class文件的字节码指令进行识别 并调用操作系统提供的API完成预期的任务为什么Java可以实现跨平台,一次编写多次运行?核心在于JVM,不同的操作系统有不同的APi,如果我们直接面向操作系统进行编程的话,是无法进行跨平台操作的。而Java引入了字节码的概念,JVM只认识字节码,它能解释系统的API调用,对不同的

2021-06-02 16:37:39 196 1

原创 html绝对路径图片无法显示

同一张图片,相对路径可以正常显示,绝对路径不行。<p>相对路径</p><img src="unnamed.jpg" alt="相对路径"><p>绝对路径</p><img src="D:\IdeaProjects\JavaWeb\src\main\java\com\imooc\others\unnamed.jpg" alt="绝对路径">原因:编译器的Web服务器无法访问本地文件。在本地直接打开此index.html,图片可以正常

2021-03-05 22:22:02 5379 4

原创 JavaScript入门

一、概述及第一个js程序1、js概述什么是动态页面、静态页面?动态页面:是否产生了交互,交互就是指人与计算机有没有进行信息沟通的功能,比如查询、注册邮箱等等,都是交互。而带有人机交互的称之为动态页面,而没有人机交互的页面称之为静态页面。什么BOM?什么是DOM?BOM称之为浏览器对象模型 DOM成为文档对象模型。2、第一个js程序两种引用方式,外部引用<script type="text/javascript" src="index.js>内部引用<script&gt

2021-02-18 19:43:11 153

原创 CSS定位

一、概述及相对定位定位:position:relative(相对) absolute(绝对) static(无定位) fixed(固定)文档流:从上往下,从左到右relative:相对于该元素以前所在的位置一般不作为元素单独显示出来,而是作为容器进行一种包含,做为父元素使用position:relativetop:20px;left:20px;二、绝对定位相对定位:不会使元素脱离文档流,元素初始位置占据的空间会保留相对定位和绝对定位的区别:初始位置是否保留绝对定位:相对于最近

2021-02-18 19:18:38 84

原创 CSS浮动

一、DIV1、div设置(上)DIV简介:DIV是层叠样式表中的定位技术,全称division,有时把div称为图层或块overflow属性设置属性作用visible默认值。内容不会被修剪,会呈现在元素框之外hidden超出的部分被隐藏scroll不论是否需要,都显示滚动条auto按需显示滚动条以便查看其余的内容2、div设置(下)CSS轮廓:outline作用:绘制于元素周围的一条线,位于边框边缘的外围,可起到突出元素的作用示例:outli

2021-02-17 22:06:07 140

空空如也

空空如也

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

TA关注的人

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