oracle 必须声明标识符_JavaSE你必须要知道的基础

01.Java概述与语法

java发展概述

0864ce365586475ac583a937fcb37fac.png

一、

Java由SUN公司研发,SUN 被 Oracle 收购

Java 由1995年发布,正式版本由1996年1月发布(jdk1.0)

Java之父: James Gosling

二、

面向对象

分布式

多线程

简单化

安全

跨平台移植 ------ JVM Java Virtual Machine Java虚拟机

三、

JavaSE Java Standard Edition : Java标准版本

JavaEE Java Enterprise Edition : Java企业版本

JavaME Java Micro Edition : Java微型版 ---------------- Android

四、搭建开发环境

JVM Java Virtual Machine Java虚拟机 : 用于与操作系统进行交互

JRE Java Runtime Enviroment Java运行环境: JVM + Java核心类库

JDK Java Development Kit Java开发工具包 : JRE + Java开发工具集(java.exe javac.exe javadoc.exe)

2.

①下载安装JDK

②通过命令提示符到JDK安装路径的bin路径下,执行 javac

③配置path环境变量:JDK安装路径的bin路径下

流程:先在当前路径下找是否有 javac.exe,若没有再到 path 环境变量中从前往后依次查找

目的:在任意路径下执行 javac

④JAVA_HOME : JDK安装根路径

五、开发第一个应用程序

步骤:

①创建一个 .java 结尾的文件,被称为 java源文件。 如: 【HelloWorld.java】

public class HelloWorld{

public static void main(String[] args){

System.out.println("HelloWorld!");

}

}

②编译: 通过 javac + 源文件名称 命令进行编译, 生成一个或多个 .class 字节码文件。 如:【javac HelloWorld.java】

③运行: 通过 java + .class 字节码文件名 命令进行运行。(JVM会将一个或多个.class 字节码文件加载到内存中)。 如:【java HelloWorld】

2. 开发第一个应用程序的注意:

①以 .java 结尾的文件,被称为 java源文件。

②一个 .java 源文件中可以有多个类,但是,只能有一个 public 修饰的类

③public 修饰类的名称必须与 .java 源文件名称一致

④每条语句以 “;” 结束

⑤Java 严格区分大小写

六、注释语句: 不会被JVM解释执行的语句

//单行注释

/*

多行注释:不能嵌套

*/

/**

文档注释: 可以通过 javadoc -d mydoc -author -version HelloWorld.java 命令生成说明文档

*/

Java基础语法

一、

标识符:凡是自己命名的地方都叫标识符。 如: 包名、类名、接口名、方法名、变量名、常量名

关键字:被Java赋予了特殊含义的单词。

1. 命名的规则 (必须遵守,若不遵守编译不能通过)

①可使用 字母 A-Z a-z 数字 0-9 特殊字符 下划线 "_" 和 美元符 “$”

②数字不能开头

③其中不能包含空格

④不能使用关键字和保留字,但是可以包含关键字和保留字

⑤Java严格区分大小写,但是长度无限制。

2. 命名的规范 (可以不遵守,但是会收到鄙视)

①包名: 所有字母都小写。 如: xxxyyyzzz

②类名、接口名:若出现多个单词,每个单词首字母都大写。如: XxxYyyZzz

③方法名、变量名: 若出现多个单词,第一个单词的首字母小写,其余单词首字母都大写。如: xxxYyyZzz

④常量名: 所有字母都大写,每个单词之间以 "_" 分隔。 如: XXX_YYY_ZZZ

二、

变量:用于保存数据

局部变量 & 成员变量

1. 变量的格式: 数据类型 变量名 = 值;

//声明一个变量

数据类型 变量名; 如: int var;

//为变量赋值

变量名 = 值; 如: var = 10;

//声明一个变量并赋值

int var = 10;

2. 变量的概念:

①在内存中开辟一块内存空间

②该空间有名称(变量名)有类型(数据类型)

③变量可以在指定的范围内不断的变化

3. 变量的注意:

①作用域:变量作用在所属的那对 {} 内

②局部变量在使用前必须赋初始值

③先声明,后使用

三、进制之间的转换(了解)

四、变量的数据类型

基本数据类型(8种):

整型: byte(8位) short(16位) int(32位)-默认类型 long(64位)

浮点型: float(32位) double(64位)---默认类型

字符型: char(2个字节---16位)

布尔型: boolean

引用数据类型:

|---类(class) -------------------- String 字符串

|---接口(interface)

|---数组([])

声明变量的注意:

①声明 long 型变量,值后需要加 L 或 l . 如: long l = 123456l; long l1 = 123456L;

②声明 float 型变量,值后必须加 F 或 f 。 如: float f = 15.6f;

③声明 double 型变量,值后可以加 D 或 d 。 如: double d1 = 167.7D;

④声明 char 型变量,值必须使用单引号。只能存储单个字符

存储 Unicode 编码(ASCII 、 中文、日文、特殊字符等等)

⑤声明 String 变量,值必须使用双引号

五、变量的运算

数据类型的转换:

自动类型转换(自动升级):小容量转大容量。(系统自动完成)

①byte short char ---> int ---> long ---> float ---> double

②byte short char 三者之间不进行运算,若运算自动提升成 int 再做运算

char c1 = 'A';

char c2 = 'B';

int i = c1 + c2;

③boolean 不参与运算

④String与任何基本数据类型使用连接符(+) 进行运算,都将自动串接成 String 类型

强制类型转换:大容量转小容量。需要使用强转符 "(需要转换的类型)"

但是可能损失精度。

六、运算符

算数运算符 : + - + - * / % 前++ 后++ 前-- 后-- +(连接符)

//除法

int a = 12;

int b = 5;

int c = a / b; //2

//取模

int c = 12 % 5;

//前后++

int i = 10;

int j = i++;

System.out.println(i);//11

System.out.println(j);//10

System.out.println(++i);

int i = 10;

i = i++; //10

赋值运算符: = += -= *= /= %=

int i = 10;

i += 5; //i = i + 5;

System.out.println(i); //15

【面试题】

short s = 5;

s = s + 1;//编译? NO

s += 1; //编译? YES s = (short)(s + 1);

比较运算符(关系运算符) : == != > < >= <= (运算后结果都为 boolean 型)

int a = 10;

int b = 20;

boolean b1 = a == b;

逻辑运算符: && -短路与 ||-短路或 !-逻辑非 &-逻辑与 |-逻辑或 ^-异或 (运算后结果都为 boolean 型)

//需求:判断一个数是否大于10 小于20

int a = 10;

//10 < a < 20; 错误的做法

boolean b2 = a > 10 && a < 20;

【面试题】 && 和 & 的区别?

&& : 称为短路与,当左边表达式结果为 false 时,右边表达式将不再运算

& : 是位运算符,当用于逻辑运算时,无论左边表达式结果为true还是false,右边都运算

位运算符 : ~ | & ^ << >> >>> 注意:没有 <<<

三元运算符(三目运算符)

条件表达式 ? 表达式1 : 表达式2;

①当条件表达式结果为 true 时,执行表达式1 ,否则执行表达式2

②表达式1和表达式2的结果类型需要保持一致!

一、流程控制:

顺序结构

分支结构

条件判断:

if(条件表达式){

//当条件表达式结果为 true 时,需要执行的语句

}

if(条件表达式){

//当条件表达式结果为 true 时,需要执行的语句

}else{

//当条件表达式结果为 false 时,需要执行的语句

}

if(条件表达式1){

//当条件表达式1 结果为 true 时,需要执行的语句

}else if(条件表达式2){

//当条件表达式2 结果为 true 时,需要执行的语句

}else if(条件表达式3){

//当条件表达式3 结果为 true 时,需要执行的语句

}

……

else{

//当上述条件表达式结果都为 false 时,需要执行的语句

}

注意:

①当某个条件表达式结果为true, 执行相应的语句,其他 else if 将不再执行

②if-else 语句可以嵌套的

选择结构:

switch(表达式){

case 值1 :

//执行的语句

break;

case 值2 :

//执行的语句

//break;

case 值3 :

//执行的语句

break;

……

default :

//执行的语句

break;

}

注意:

①表达式结果的数据类型,只能是 byte short char int 枚举 String(jdk1.7后)

②表达式结果的数据类型要与case后值的类型需要保持一致!

③default 是可选的

④break 也是可选的,若与某个case后的值匹配成功,依次向下执行,直到遇到break为止。'

⑤case 后只能写常量值,不能写表达式

//需求:若一个数大于2 小于5 打印 “2-5”

int i = 2;

switch(i){

case 1:

System.out.println("一");

break;

case 2:

case 3:

case 4:

case 5:

System.out.println("2-5");

break;

}

循环结构:

①初始化值

②循环条件

③迭代条件

④循环体

for(① ; ② ; ③){

}

①②④③②④③②④③②……④③②

while(②){

}

do{

}while(②);

while 和 do-while 的区别?

while : 先判断循环条件,再执行循环体

do-while : 先执行循环体,再判断循环条件。(至少执行一次)

二、嵌套循环: 一个循环充当了另一个循环的循环体

打印100以内的质数:

boolean flag = true;

for(int i = 2; i <= 100; i++){

for(int j = 2; j < i; j++){

if(i % j == 0){

flag = false;

break;

}

}

if(flag){

System.out.println(i);

}

flag = true;

}

三、特殊流程控制语句

break: 结束“当前”循环 。当用于switch-case语句时,用于结束当前 switch-case 语句

continue: 结束“当次”循环

label:for(int i = 0; i < 100; i++){

for(int j = 0; j < 100; j++){

if(j == 13){

System.out.println(j);

break label;

}

}

}

02.方法的声明和使用

作者: 风离紫竹

方法的声明和使用

一、方法:也叫函数,是一个功能的定义。是一个类中最基本的功能单元

//需求: 计算一个数 * 2 + 1 的结果

int a = 10;

System.out.println(a * 2 + 1);

a = 5;

System.out.println(a * 2 + 1);

a = 8;

System.out.println(a * 2 + 1);

1.方法的格式:

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

//功能语句

return 返回值;

}

返回值类型:说明方法运行后有结果,那个结果的数据类型。

参数列表:就是局部变量,可以有0个或多个,每个参数之间以 “,” 分隔

return : 用于结束当前方法

返回值:方法运行结束后,返回具体结果的值

public static int result(int a){ //形式参数: 用于接收调用者传递的实际参数

return a * 2 + 1;

}

result(10);//实际参数

2. 方法的注意:

①“返回值类型”与 “返回值”的数据类型需要保持一致

②调用方法通过方法名和参数列表,注意方法名和参数列表(参数的个数、参数的类型)必须一致

③若声明了“返回值类型”说明该方法运行后有结果,若调用者需要用到该结果

可以声明同类型变量接收。

④若方法运行结束后,不需要返回任何结果给调用者时,方法“返回值类型”处声明为 void

void : 表示没有返回值

⑤方法中只能调用方法,不能声明其他方法

3. 声明方法的两点明确

①方法是否需要返回结果给调用者

明确是否需要返回值类型,返回值类型是什么

②方法是否有未知的数据参与运算

明确是否需要参数列表,需要几个

二、跨类调用方法:

通过“类名.方法名" 方式调用。 (暂时使用static修饰的方法为例)

一、参数的值传递

基本数据类型:将基本数据类型作为参数,传递给方法,方法运行结束后,原值不会发生改变

//改变两个数的值

public static void add(int a, int b){

a += 1;

b += 2;

}

public static void main(String[] args){

int a = 10;

int b = 20;

add(a, b);

System.out.println("a=" + a + " b=" + b);//a=10, b=20

}

引用数据类型:

方法重载 Overload :

前提:在同一个类中

①方法名相同

②参数列表不同(参数的个数、参数的类型)

注意:与返回值类型无关

public void show(char c, int a){}

public void show(int a, char c){}

public void show(int a, char c, double d){}

public void show(String str, int a){}

public void shows(char c, int a){}

03. 面向对象编程(上)

作者: 风离紫竹

一、面向对象编程(OOP)

面向对象和面向过程:

面向过程:强调的是功能行为

面向对象:将功能行为封装进对象,强调的是具备了功能行为的对象

(理解)把大象装冰箱一共分几步?

①打开冰箱 ②把大象装进去(存储大象) ③关闭冰箱

如何使用面向对象思想思考上述问题呢?

人{

拉(冰箱){

冰箱.打开()

指挥(动物){

动物.进入()

推(冰箱){

冰箱.关闭()

冰箱{

打开(){}

存储(){}

关闭(){}

大象{

进入(){}

猴{

进入(){}

狮子{

进入(){}

面向对象更加注重前期的设计

①就是对类的设计

②设计类就是设计类的成员:属性 & 方法

面向对象:将现实生活中一类事物的共性内容进行提取,抽象成相应Java类,用Java中类对其进行描述

现实生活中的事物: 小猫 小狗 大象

共性内容: 名称 性别 年龄 吃饭的功能 睡觉的功能

class Animal{

//属性

String name;

char gender;

int age;

//方法-行为

public void eat(){

System.out.println("吃饭");

}

public void sleep(){

System.out.println("睡觉");

}

}

若需要具体到某一个事物,通过 new 关键字创建对象

Animal a1 = new Animal(); //

a1.name = "大象";

a1.gender = '男';

a1.age = 2;

a1.eat();

a1.sleep();

System.out.println(a1.name +

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值