自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 16 final关键字

final的特点final的中文意思是最终,既然是最终就是已经结束了,无法再改变了。在Java里面final关键字同样也有着类似的功能。final修饰的类无法被继承。例1final修饰的方法无法被重写。例2final修饰的局部变量,一旦赋值,不可再改变。例3final修饰的成员变量必须初始化值。例4例1:final class A{}class B extends A{}//er...

2019-08-11 15:37:57 167

原创 15 多态

多态简介多态就是事物存在的多种形态,比如你在大街上看见一只藏獒,你可以说这只藏獒真凶猛,也可以说这只狗真凶猛,还可以说这个动物真凶猛,以上三种说法其实都是指的这只藏獒。在Java里面,也是存在多态的,只要全部符合下面这三种情况,就是多态1 有继承2有方法重写3 有父类引用指向子类对象例如下面代码就构成多态定义一个Animal类public class Animal{ in...

2019-08-11 15:33:13 271

原创 14 继承相关面试题

1.请问下面程序的输出结果是什么?class Fu{ public int num = 125; public Fu(){ System.out.println("fu"); } } class Zi extends Fu{ public int num = 256; publ...

2019-08-11 15:20:31 186

原创 13 super关键字

什么是super?super代表的是当前子类对象中的父类型特征。什么时候使用super?1 子类和父类中都有某个数据,例如,子类和父类中都有name这个属性。如果要再子类中访问父类中的name属性,需要使用super。例12 子类重写了父类的某个方法(假设这个方法名叫m1),如果在子类中需要调用父类中的m1方法时,需要使用super。例1子类调用父类中的构造方法时,需要使用super。...

2019-08-11 15:14:48 102

原创 12 方法的重写(override)

什么是重写?重写,也叫做覆盖,当父类中的方法无法满足子类需求时,子类可以将父类的方法进行重写编写来满足需求。比如孩子继承了父亲的房子,可以将房子重新装修。方法重写的条件:1 两个类必须是继承关系2 必须具有相同的方法名,相同的返回值类型,相同的参数列表.3 重写的方法不能比被重写的方法拥有更低的访问权限。4 重写的方法不能比被重写的方法抛出更宽泛的异常。(关于异常后面的章节再讲。)5...

2019-08-11 15:03:20 192

原创 11 继承extends

继承是面向对象三大特征之一。java中的继承描述的是两个类之间的关系,被继承的类称为父类,继承的类称为子类,使用extends关键字来表示。在java语言里面只支持单继承,即一个类只能有一个父类,子类可以继承父类中的非private修饰的成员方法和成员变量,构造方法不能被继承,java里面的继承跟现实生活中的继承颇为相似,现实生活中一个儿子只能有一个父亲,儿子可以继承父亲的房子车子但是不...

2019-08-11 14:53:35 98

原创 10 代码块的分类

什么是代码块?使用{}括起来的代码被称为代码块,根据其位置和声明的不同可以分为下面4种:局部代码块,在方法中出现,限定变量生命周期,及早释放,提高内存利用率构造代码块,在类中方法外出现;多个构造方法方法中相同的代码存放到一起,每次调用构造都执行,并且在构造方法前执行静态代码块, 在类中方法外出现,并加上static修饰;用于给类进行初始化,在加载的时候就执行,并且只执行一次。一般用于加载驱...

2019-08-10 21:19:38 96

原创 9 static关键字

static的作用?static可以修饰变量,被static修饰的变量叫做静态变量,程序运行时静态变量存放在方法区里面,因此,静态变量在类加载阶段赋值,并且只赋值一次。请看例1static可以修饰方法,被static修饰的方法叫做静态方法,不用创建对象就能能直接访问该方法,即使用类名.静态方法名的方式。静态方法不能访问非静态的数据,静态方法不能使用this。请看例2static可以定义静态语...

2019-08-10 21:14:20 82

原创 8 this关键字

this是什么?this是java里面的一个关键字,是一种引用类型,在堆(heap)中的每个java对象上都有一个this指向自己。this代表着当前对象的引用。this可以做什么?1.可以区分成员变量和局部变量。例:/* 创建一个歌手类*/class Singer{ private String name; /* 以前在编写set方法时为了将传...

2019-08-10 21:07:33 117

原创 7 构造方法

构造方法的概念构造方法(constructor),有的地方叫做构造器或者构造函数。构造方法的作用是给对象数据进行初始化。构造方法格式特点1 方法名与类名相同(注意大小写也要与类名一致)2 没有返回值类型3 没有void修饰4 没有具体的返回值return;5 如果一个类没有提供任何构造方法,系统默认提供无参数构造方法6 如果一个类已经手动的提供了构造方法,那么系统不会再提供任何构...

2019-08-10 20:58:54 412

原创 6 方法调用时参数传递的问题

方法调用时,参数除了可以传递基本数据类型,还可以传递引用数据类型,这两种参数在传递的时候会有一些差异,在使用的时候需要注意基本数据类型的参数传递先来看看这段代码,m1方法中的i和main方法里面的i的值分别是多少?public class ParamTest01{ public static void m1(int i){ i++; System.o...

2019-08-10 20:52:46 325

原创 5 封装性和private关键字

封装这一节来看下面向对象三大特征之一的封装。什么是封装?封装是指隐藏对象的属性和实现细节,仅对外提供公共访问方式。封装的优点:隐藏代码的实现细节,提高安全性。举个例子,我们日常生活中的插座,如果没有封装外壳直接使用零线火线的话会比较危险,加上外壳封装之后使用起来既方便又安全private关键字看看下面代码中所描述的问题。class Person { String name...

2019-08-10 20:36:55 196

原创 4 对象内存图解

创建一个对象通过画图来看下对象在内存中是如何分配的,这样更有助于初学者理解对象。学生类class Student{ //学号 int id; //姓名 String name; //性别 boolean sex; //年龄 int age; public void study() { ...

2019-08-10 20:32:15 123

原创 3 成员变量和局部变量

成员变量和局部变量的区别之前简单的介绍过这两种变量,这一节里面,我们来详细的分析一下两者的区别成员变量:写在类体的里面,方法体的外面,声明时可以不进行初始化值,可以被本类或其他类的方法进行调用。局部变量:写在方法体的里面,声明时可以不初始化,但是在使用前一定要初始化,只能在声明局部变量的方法内进行调用。数据类型的默认值如果只声明成员变量不对其进行赋值,那么Java里面的8个基本数据类型的...

2019-08-10 20:25:17 115

原创 2 类与对象

属性和行为我们学习编程最主要的一个目的就是解决日常生活中的问题,将繁琐的事物交给计算机去处理。这就会需要程序员将日常生活中的事物进行抽象,然后在使用编程语言编写出来。如何将日常生活中的事物进行抽象呢?一般事物都具有下面两个特点:属性-描述该事物的信息,一般是事物上面的名词行为-描述该事物能做什么,一般是动词比如学生的属性:学号:1001姓名:张三性别:男年龄:20学生的行为...

2019-08-10 20:23:14 97

原创 3 面向对象概述

概述编程语言是人类创造的,因此里面很多思想来源于生活。程序员使用编程技术开发软件也是为了解决生活中一些繁琐的问题,这一节将要学习一种编程思想-面向对象,Java就是一门面向对象设计的语言。面向过程和面向对象的区别:通过对比,来更深入的了解下面向对象面向过程主要是把问题分解成多个不同的步骤,然后把各个步骤变成方法,它更强调过程面向对象会把问题分解成各个对象,然后各个对象之间进行交互,每个对...

2019-08-10 20:16:26 89

原创 26 方法递归调用

什么是递归递归就是方法自己调用自己,在编写的时候一定要有一个结束条件,否则将会造成StackOverflowError的错误。看如下示例,计算1~n的和,按照以前所学习的知识,可能你会这样编写代码public static void main(String[] args){ int n = 5; //调用该方法完成1-N的求和 int result = sum(n...

2019-08-10 10:24:36 121

原创 25 方法的执行过程图解

方法的执行过程先看如下代码:public static void main(String[] args){ int i = 1024; m1(i); System.out.println("monkey1024");}public static void m1(int i){ m2(i);}public static void m2(int ...

2019-08-10 10:20:48 381

原创 24 数据结构_栈(stack)

栈的英文是stack,特点是先进后出,可以把栈想象成一个桶,如下图所示,向里面放置元素的时候叫做压栈(push),向外取出元素的时候叫做弹栈(pop)。在JVM当中有一块内存空间,就是栈区,专门为方法准备的。方法执行所需要的内存空间都在栈当中分配。1 方法调用之后给该方法分配内存,在JVM的“栈区”当中分配空间,2 方法调用分配空间的过程就是:压栈(push)的过程。3 方法执行结束之后,给...

2019-08-10 10:18:40 153

原创 23 方法的重载(overload)

问题之前已经写了一个方法sumInt用来计算两个int类型数字的和,如果要是想计算两个float类型数字的和呢?ok,那就再来写一个sumFloat方法,除此之外,还有long类型,double类型,如果每种类型都要进行求和计算的话,就会像下面这种情况写4个方法了。public class MethodTest{ public static void main(String[] ar...

2019-08-10 10:16:07 124

原创 22 return关键字

return关键字程序执行到方法里面的return语句时,方法就会返回,return下面的语句不会被执行。例:public class MethodTest{ public static void main(String[] args){ //不接收返回值也行,符合语法规则,编译可以通过。 sumInt(10,20); //对于有返...

2019-08-10 10:10:20 178

原创 21 方法的调用和执行顺序

方法详解_方法的调用和执行顺序方法的调用同一个类里面的方法可以直接调用(就像上一篇里面写的那样),还可以跨类进行调用,即调用别的类里面的方法,需要采用”类名.”的方式。例:public class MethodTest01{ public static void main(String[] args){ //不在同一个类里面,只能使用"类名."的...

2019-08-10 10:03:59 641

原创 20 方法的定义和作用

方法详解_方法的定义和作用**方法有什么作用?**先来看一个需求计算10+15的值计算20+30的值按照以前学习的知识,你可能会这样编写代码:int a = 10;int b = 15;int sum1 = a + b;System.out.println(sum1);int d = 20;int e = 30;int sum2 = d + e; System.out...

2019-08-10 09:58:14 364

原创 19 控制语句_break和continue

控制语句_break和continuebreakbreak是java语言中的关键字,中文是打断,终止的意思1 可以用在switch语句中,结束分支语句,防止case穿透现象的发生.2 可以出现在循环当中,作用是结束整个循环的执行,默认情况下结束离它最近的一个循环.for(int i=0;i<10;i++){ System.out.println(i); if(i==...

2019-08-10 09:48:16 74

原创 18 循环语句_do_while

循环语句_do…while**语法** 初始化语句; do { 循环体语句; 控制条件语句; }while(boolean表达式);执行过程:首先会执行do循环体中的语句,然后运算while中的boolean表达式,如果是true则继续执行do循环体中的语句,如果是false,则循环执行结束。do里面的语句至少会执行一次,执行之...

2019-08-10 09:41:59 142

原创 17 while循环语句

while循环语句**语法** 初始化语句; while(boolean表达式) { 循环体语句; 控制条件语句; }执行过程:只要boolean表达式里面的结果是true,就会执行while大括号里面的语句,直到boolean表达式的结果变为false,循环结束。while循环的次数是:0-N次while循环本质上和for循环是...

2019-08-10 09:38:59 161

原创 16 for循环语句

for循环语句问题请在控制台里面打印10次HelloWorld。这时可能你会这么写:System.out.println("helloworld");System.out.println("helloworld");System.out.println("helloworld");System.out.println("helloworld");System.out.println...

2019-08-08 21:56:50 666

原创 15 控制语句switch

控制语句switch语法switch(表达式){case 值1: java语句; break;case 值2: java语句; break;case 值3: java语句; break;default: java语句;}例:int week = 1; switch(week) { case...

2019-08-08 21:48:00 448

原创 14 分支语句if…else…

控制语句if…else…语法可以直接看例子更容易理解,注意if后面的表达式的运算结果一定是boolean类型 第一种结构: if(boolean表达式){ java语句; } 解释:如果if后面的boolean表达式是true就执行大括号里面的java语句 如果是fal...

2019-08-08 21:45:24 163

原创 13 位运算符

位运算符位运算符有哪些?& 位与| 位或^ 位异或>> 向右移>>> 无符号右移<< 向左移位运算符都是操作的二进制用法:&,|,^ 的用法&:有0则0|:有1则1^:相同则0,不同则1例:System.out.println(6 & 3); //2System.o...

2019-08-08 21:43:35 260

原创 12 三目运算符

三目运算符有的地方也叫三元运算符语法:boolean表达式 ? 表达式1 : 表达式2解释:boolean表达式的结果是true,则整个表达式的结果就是表达式1,相反则是表达式2。例: //(关系表达式) ? 表达式1 : 表达式2; int x = 10; int y = 5; int z; z = (x > y) ? x : y;//...

2019-08-08 21:38:13 121

原创 11 字符串链接运算符

字符串连接运算符之前学过+运算符了,除了做加法之外还可以连接字符串:1.做加法运算(+两边只要都是数字类型,一定是加法运算)2.字符串连接(+两边任意一端只要是字符串类型,则一定是字符串连接)当一个表达式当中有多个加号,并且在没有小括号的前提下:遵循自左向右的顺序依次执行。(有小括号的优先级较高)。...

2019-08-08 21:32:51 1115

原创 10 布尔运算符

布尔运算符布尔运算符有哪些& 逻辑与 两边都是true,结果是true| 逻辑或 一边是true,结果就是true! 逻辑非 取反 !true –> false^ 逻辑异或 两边只要是不一致就是true&& 短路与 用法和 & 一样。|| 短路或 用法和 | 一样&&和&的区别?&&具有短路效果。如...

2019-08-08 21:30:43 1423

原创 9 关系运算符

关系运算符关系运算符有哪些== 判断是否相等(基本数据类型)!= 不等于> 大于>= 大于等于< 小于<= 小于等于 int a = 10; int b = 10; //判断两个基本数据类型是否相等,必须使用“==”, "="是赋值运算. boolean c = (a==b); //不知道运算符的优先级就加括号. ...

2019-08-08 21:26:01 200

原创 8 赋值运算符

赋值运算符赋值运算符有哪些1 =2 += 把左边和右边做加法,然后赋值给左边3 -= 把左边和右边做减法,然后赋值给左边4 *= 把左边和右边做乘法,然后赋值给左边5 /= 把左边和右边做除法,然后赋值给左边6 %= 把左边和右边做取余,然后赋值给左边例: //基本的赋值运算符 int a = 10; //追加 a += 10; //a = a+1...

2019-08-08 21:22:22 183

原创 10 Arrays工具类简介

Arrays工具类在java.util包里面有个Arrays类,里面提供了排序和二分法查找的方法,程序员直接调用就行,而且这些方法都是静态的,所以在使用时不用创建对象。import java.util.Arrays;/** * Arrays工具类 * */public class ArrayTest08 { public static void main(String[]...

2019-08-07 22:51:41 92

原创 9 二分法查找

二分法查找原理使用二分法查找时需要以下两个条件:1 没有重复元素2 已经排好顺序假设给定一组排好序且没有重复元素的数字,要从这些数字中快速找到x所在的位置,可以从这组数字的中间位置开始找,如果当前值与x相等,则查找成功,如果小于x则从后半段的中间位置继续找,如果大于x则从前半段的中间位置继续寻找,直到找到x所在的位置例如一个数组里面的元素有:1,5,8,15,18,23,30快速找到2...

2019-08-07 22:48:51 255

原创 8 冒泡排序

冒泡排序原理将要排序的一组数字进行遍历。第一次遍历,将相邻的两个数字进行比较,直到这组数字全部比较完成,如果前面比后面的数字大,则进行交换位置,此时可以将最大的数字筛选出来,放到最后的位置上。第二次遍历,将相邻的两个数字进行比较,直到这组数字全部比较完成,如果前面比后面的数字大,则进行交换位置,将这组数字里面第二大的数字筛选出来,放到倒数第二的位置上。依次进行遍历,交换位置,直到排序完成。...

2019-08-07 21:59:35 238 2

原创 7 选择排序

选择排序原理将要排序的一组数字进行遍历。第一次遍历,将第一个位置上的数字与后面的数字进行比较,如果后面的数字比第一个位置上的元素小,则将两个数字的位置进行交换。第二次遍历,将第二个位置上的数字与后面的数字进行比较,如果后面的数字比第二个位置上的元素小,则将两个数字的位置进行交换。依次进行遍历、位置交换,直到这组数字排序完成。比如要排序的数字是4,2,7,3,6第一次遍历,将最小的2筛选...

2019-08-07 21:55:26 179

原创 6 数组的扩容

通过拷贝进行扩容在java语言里面,数组一旦创建好之后,长度是不可变的,倘若数组的长度不够使用了,装不下数据之后需要对数组进行扩容,那该如何扩容呢?可以再重新创建一个长度更大的数组,然后将之前的旧数组拷贝到新的数组里面,通过这种方式来进行扩容。相信你能够自己写出这样的方法,不过java已经为开发者提供了这样的方法,我们直接使用即可。public class ArrayTest07{ ...

2019-08-07 21:36:19 121

空空如也

空空如也

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

TA关注的人

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