javaSE基础

javaSE

1.基础语法

public class a{

​ public static void main (string[] args){

​ print(“xx”);

​ }

}

java大小写敏感

尽量使用英文

文件名类名保持一致且首字母大写

1.1注释&标识符&关键字

1.1.1注释

单行注释 //

多行注释 /* */

文档注释 /** */

1.1.2标识符
1.1.3关键字

请添加图片描述

1.2数据类型

1.2.1基本类型
1.1整数型

jdk7后数字间可加下划线

1.2浮点型
1.3字符型
1.2.2引用类型
1.1类
1.2接口
1.3数组

1.3类型转换

不能转换布尔值

不能转换为不相干的

转换时可能内存溢出或者精度出现问题

1.1强制转换

高—>低

system.out.println((int)啊)

1.2自动转换

低—>高

1.4变量

Java为强类型语言,每个变量都需声明类型

1.1定义

变量类型 变量名=值;

1.2类变量

首字母小写和驼峰原则

ps:驼峰原则:除第一个单词外,后面的单词首字母大写,warAlert

1.3实例变量

从属于对象

若不自行初始化,为其类型默认值,布尔值为false

1.4局部变量

首字母小写和驼峰原则

必须声明和初始化值

1.5常量

大写字母和下划线

final //定义

1.6类名

首字母大写和驼峰原则

1.7方法名

首字母小写和驼峰原则

1.5修饰符

不区分前后

1.6运算符

优先级()

1.1算数运算符

+,-,*,/,%,++,–

1.2赋值运算符

=

1.3关系运算符

>,<,>=,<=,==,!=

1.4逻辑运算符

&&,||,!

短路运算

与运算前面错误不会执行后面

1.5位运算符

&,|,^,~

>> // /2

<< // *2

>>>

1.6条件运算符

?:

1.7扩展赋值运算符

+=,-=,*=,/=

1.7连接符

1.8javadoc

2.编译型&解释型

1.1编译型

先编译(*.class)

1.1.1反编译

1.2解释性

后解释

3.语句

1.1scanner对象

通过scanner类来获取用户输入

1.1.1基本语法

Scanner s = new Scanner(System.in);

1.1.2next()&nextLine()

next():

  1. 一定要读取到有效字符后才可以结束输入
  2. 对输入有效字符之前遇到的空白,next()方法会自动将其去掉
  3. 只有输入有效字符后才将其后面输入的空白作为分隔符或者结束符
  4. next()不能得到带有空格的字符串

nextLine():

  1. 以Enter为结束符,也就是说nextLine()方法返回的是输入回车之前的所有字符
  2. 可以获得空白

1.2顺序结构

正常语句依次执行

1.3选择结构

1.3.1if语句
1.3.2if else语句
1.3.3if else if语句
1.3.4if嵌套
1.3.5switch case语句

jdk7后可比较string

string仍为数字,转为数字后进行比较

case //穿透,若没有跳出循环则一直顺序

switch ©{

​ case ‘x’:

}

1.4循环结构

1.4.1while循环

while(ture) //死循环,避免

while先判断后执行

1.4.2do while循环

do while先执行后判断,所以会保证执行一次

1.4.3for循环

for(初始化;条件;迭代)

1.4.4增强for循环

int[] number = {10,20,30,40,50}; //定义数组

for (int x:numbers){

​ system.out.println(x);

}

1.5break&coutinue

1.5.1break

跳出循环

1.5.2coutinue

跳过循环体后面,继续循环

4.包机制

文件夹

一般利用公司域名倒置作为包名

1.1语法格式

package pkg1[. pkg2[. pkg3…]];

1.2导入包

import package[.package2…].(classname|*);

5.方法

1.1定义&调用

修饰符 返回值类型 方法名(参数类型 参数名){

​ …

​ 方法体

​ …

​ return 返回值;

}

方法包含一个方法头和一个方法体

1.1.1修饰符

修饰符,这是可选的,告诉编译器如何调用该方法。定义了该方法的访问类型

1.1.2返回值类型

方法可能会返回值。returnValueType是方法返回值的数据类型。有些方法执行所需的操作,但没有返回值。在这种情况下,returnValueType是关键字void

1.1.3方法名

是方法的实际名称。方法名和参数表共同构成方法签名

1.1.4参数类型

参数像是一个占位符。当方法被调用时,传递值给参数。这个值被称为实参或变量。参数列表是指方法的参数类型,顺序和参数的个数。参数是可选的,方法可以不包含任何参数

  • 形式参数:在方法被调用时用于接收外界输入的数据
  • 实参:调用方法时实际传给方法的数据
1.1.5方法体

方法体包含具体的语句,定义该方法的功能

1.1.6return

终止方法

1.1.7调用

调用方法:对象名.方法名(实参列表)

如果方法返回值时void,方法调用一定是一条语句

1.2方法的重载

1.2.1定义

重载就是在一个类中,有相同的函数名称,但形参不同的函数

1.2.2规则
  • 方法名必须相同
  • 参数列表必须不同(个数不同,或类型不同,参数排列顺序不同等)
  • 方法的返回类型可以相同也可以不相同
  • 仅仅返回类型不同不足以成为方法的重载
1.2.3实现

方法名称相同时,编译器会根据调用方法的参数个数,参数类型等去逐个匹配,以选择对应的方法,如果匹配失败,则编译器报错

1.3命令行传参

1.4可变参数

必须放在最后面

1.5递归

自己调用自己

1.5.1递归结构
  • 递归头:什么时候不调用自身方法。如果没有头,将陷入死循环
  • 递归体:社么时候需要调用自身方法

1.6数组

1.1定义

相同类型数据的有序集合

1.2特点

  • 长度是确定的。数组一旦被创建,大小则不可被改变
  • 其元素必须是相同类型,不允许出现混合类型
  • 数组中的元素可以是任何数据类型,包括基本类型和引用类型
  • 数组变量属引用类型,数组也可以看成是对象,数组中的每个元素相当于该对象的成员变量。数组本身就是对象,java中对象是在堆中的,因此数组无论保存原始类型还是其他对象类型,数组对象本身就是在堆中的

1.3创建声明

获取数组长度 //arrays.length

1.4使用

  • for循环
  • for-each循环
  • 数组作方法入参
  • 数组作返回值

1.5多维数组

数组嵌套

1.6内存分析

声明数组,赋值

1.6.1堆

数组空间在堆中开辟,赋予值

1.6.2栈

数组名存入栈

1.7初始化

1.7.1静态初始化

创建+赋值

1.7.2动态初始化

自己去后期赋值

1.7.3默认初始化

1.8数组边界

ArrayIndexOutOfBoundsException //数组下标越界异常

1.7面向对象

1.1本质

以类的方式组织代码,以对象的组织(封装)数据

抽象

1.2特性

1.2.1封装

高内聚(类的内部数据操作细节自己完成,不允许外部干涉),低耦合(仅暴露少量方法给外部使用)

该露的露,该藏得藏

数据的隐藏,通过结合口来访问 //信息隐藏

属性私有 get(获取)/set(设置值)

1.2.2继承

本质 //对某一批类的抽象,从而实现对现实世界更好的建模

扩展 //extands,子类是父类的扩展

java类中只有单继承,没有多继承

  • 继承是类和类之间的一种关系,除此之外,类和类的关系还有以来,组合,聚合等关系

  • 继承关系的两个类,一个为子类(派生类),一个为父类(基类)。子类继承父类,使用关键字extends来表示

  • 子类与父类之间的关系,从意义上将应该具有is a的关系

  • object类

  • super

对比:

this

//本身调用这个对象

//没有被继承也可以使用

//本类的构造

super

//代表父类对象的应用

//只能在继承条件下使用

//父类的构 你造

隐藏代码:调用父类的无参

调用父类构造器,必须要在子类第一行

  • 方法重写

子类方法要和父类一致:方法体不同

需要有继承关系

子类重写父类

只和非静态有关

静态 //方法的调用只和定义的数据类型有关

  1. 方法名必须相同
  2. 参数列表必须相同
  3. 修饰符,范围可以扩大不可以缩小 //public>protected>default>private
  4. 抛出的异常,范围,可以缩小但不能扩大

父类的功能,子类不一定需要,或者不一定可以满足

1.2.3多态

动态编译:类型

一个对象的实际类型是确定的,但可以指向的引用不确定 //父类的引用指向子类

同一个方法可以根据发送对象的不同而采用多种不同的行为方式

一个对象的实际类型是确定的,但是可以指向对象的引用的类型有很多

多态存在的条件

  • 有继承关系
  • 子类重写父类方法
  • 父类引用指向子类对象

注意:多态是方法的多态,属性没有多态性

  1. 多态是方法的多态,属性没有多态
  2. 父类和子类,有联系
  3. 存在条件:继承关系,方法需要重写,父类引用指向子类对象

instanceof

子类转父类可能丢失方法

父类引用指向子类对象

把子类转换为父类,向上转型

把父类转换为子类,向下转型,强制转换

方便方法的调用,减少重复代码

1.3类

  1. 静态的属性 //属性
  2. 动态的行为 //方法

类是抽象的需要实例化

实例化后返回一个对象

属性:字段

方法

一个类什么都不写也会存在一个构造方法 //构造器

单继承

私有 //private

1.3.1抽象类

抽象类 //abstract,用在方法上,抽象方法

抽象类的所有方法,继承了他的子类,都必须要实现他的方法

  1. 不能new,只能子类实现 //约束
  2. 抽象类中可以写普通的方法
  3. 抽象方法必须在抽象类中
1.3.1内部类

获得外部类的私有属性

静态内部类

局部内部类

没有名字初始化类,不用将实例保存到变量中

1.4创建&初始化对象

1.4.1创建对象

具体

使用new关键字创建对象

1.4.2构造器

构造方法

用来初始化值

alt + insert //生成构造器

使用new关键字,必须要有构造器 //本质是在调用构造器

1.1有参构造

一旦定义了有参构造,无参就必须显示定义

1.1特点
  1. 必须和类的名字相同
  2. 必须没有返回类型,也不能写void

1.5接口

interface

规范

接口的本质是契约

接口中的所有定义都是灰色的

类可以实现接口

实现了接口的类,就需要重写接口的方法

接口实现多继承

接口中定义的属性都是常量

1.5.1作用
  1. 约束
  2. 定义方法
  3. public abstract
  4. public static fianl
  5. 接口不能实例化,接口中没有构造方法
  6. implements可以实现多个接口
  7. 必须要重写接口中的方法

1.6异常

exception

检查性异常

运行时异常 //RuntimeException

错误 //error,不属于异常

1.6.1异常处理机制

try

catch //捕获异常

finally //处理善后,可以不加

异常关键字

  1. throw
  2. throws
  3. catch
  4. finally
  5. try

自定义异常

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值