Java基础语法

Java基础语法

1.Java的特点

  • 简单易学
  • 面向对象(封装、继承、多态)
  • 平台无关性(Java虚拟机实现平台无关性)
  • 可靠性
  • 安全性
  • 支持多线程(C++语言没有内置的多线程机制,因此必须调用操作系统的多线程功能来进行多线程程序设计,而Java语言提供了多线程支持)
  • 支持网络编程并且很方便(Java语言诞生本身就是为简化网络编程设计的,因此Java语言不仅仅支持网络编程而且很方便)
  • 编译与解释并存

2. Java的诞生

  • 1991年,Green项目,开发语言最初命名为Oak(橡树)
  • 1996年,发布 JDK 1.0
  • 1997年,发布 JDK 1.1
  • 1998年,发布 JDK 1.2,同年发布企业平台 J2EE
  • 1999年,Java分成 J2SE、 J2EE和 J2ME,JSP/Servlet技术诞生
  • 2004年,发布里程碑式版本 JDK 1.5 后更名为 JDK 5.0
  • 2005年, J2SE–>JavaSE、 J2EE–>JavaEE、J2ME–>JavaME
  • 2009年,Oracle公司收购SUN
  • 2011年,发布JDK 7.0
  • 2014年,发布 JDK 8.0,是继JDK 5.0 以来变化最大的版本
  • 2017年,发布 JDK 9.0,最大限度实现模块化
  • 2018年3月,发布 JDK 10.0
  • 2018年9月,发布 JDK 11.0

3. Java的三大平台体系

JavaSE(J2SE):
​ 标准版:各个应用平台的基础
JavaME(J2ME):
​ 微型版:致力于嵌入式的开发
JavaEE(J2EE):
​ 企业版:为企业的环境进行开发环境的解决

4. Java是跨平台的

Java源代码(你写的代码)-》编译-》Java字节码文件-》运行-》JVM(JDK软件) 安装在不同的系统下面(window Linux OS)

5. DOS 命令

  • 常用的 DOS 命令
  • dir:列出当前目录下的文件以及文件夹
  • md:创建目录
  • rd:删除目录
  • mkdir:在指定的文件夹下面创建指定的文件夹
  • 切换盘符:直接在命令行中写盘符即可
  • cd:进入指定目录
  • cd…:退回到上一级目录
  • cd\:退回到根目录
  • del:删除文件
  • cls:清屏
  • exit:退出dos命令行
  • 常用快捷键
  • ➡⬅:移动光标
  • ⬆:调阅历史操作命令
  • Delete 和 Backspace:删除字符

6. Java中的注释问题

  • 单行注释://
  • 多行注释:/* */
  • 文档注释:/** */
  • 单行注释和多行注释,注释了的内容不参与编译。换句话说,编译以后生成的.class结尾的字节码文件中不包含注释掉的信息
  • 注释内容可以被JDK提供的工具 javadoc 所解析,生成一套以网页文件形式体现的该程序的说明文档
  • 多行注释不可以嵌套使用

7. 常量

进制单位基数范围规则
二进制0-1逢2进1
八进制0-7逢8进1
十进制0-9逢10进1
十六进制0-9 a-f逢16进1

8. 变量、八大基本数据类型【重点】

  • 变量按照数据类型分类
    • 基本数据类型
      • 数值型
        • 整数类型【byte、short、int、long】
        • 浮点类型【float、double】
      • 字符型【char]
      • 布尔型【boolean】
    • 引用数据类型
      • 类【class】
      • 接口【interface】
      • 数组【[ ]】
整型数据范围占用内存的字节
byte-128-1271字节
short-32768 - 327672字节
int(是最常用的,而且是默认的,以后开发就用int)-2^31 - 2^31-14字节
long-2^63 - 2^63-18字节

注意:一般在声明long类型的数据的时候在数据后面加L

浮点数据范围占用的字节数
double-1.79*10^308 - 1.79 * 10^3088字节
float-3.4* 10^38 - 3.4*10^384字节

注意事项:

​ double有效的位数 是17

​ float 有效位数是7位

​ 声明float类型的数据的时候需要加f

数据类型数据范围占用字节
char除了\ 都是可以的2字节

注意事项:

​ 声明char类型的数据的时候是一个 单引号’'.而且单引号只能有一个元素

类型数据范围占用的字节
booleantrue false1字节
变量就是申请内存用来存储数据的
int a = 20;
栈区 a	20
int[] arr = new int[3]
arr	栈区		引用地址
[0,0,0]	   堆区

8. 变量的命名规则

  • 首字母不能大写
  • 变量的命名可以使用数字,字母,_,$等组成,但是不能以数字开头
  • 用的是小驼峰的命名规则
  • int userAge = 78;
  • 命名一定要见名知意
  • double weight = 87.6;
  • 已经被Java使用的关键字不能再当成一个变量了

9. 类名的命名规则

  • 首字母要大写
  • 采用大驼峰命名规则,当一个类由两个或者多个单词组成的时候,每个单词首字母要大写

10. 转义字符【重点】

  • 目的:把一个无意义的字符转为有意义的字符,或者将一个有意义的字符转为无意义的字符
  • 语法格式
    • \ 字符(有意义的字符或者无意义的字符)
  • 及格特殊的字符
  • \n:回车换行
  • \t:制表符 空格

11. 算术运算符【重点】

  • 数学中的 + (加) -(减) *(乘) /(除) %(取余)
  • 先乘除后加减 先算小括号里面 再算括号外面的
  • 自增和自减
  • 目的:一个变量 自身加1或者自身减1
  • 语法格式:
  • 变量++;先执行当前的操作,再自身加1
    ++变量;先自身加1,然后再执行其他操作
    变量--;先执行当前的操作,再自身减1
    --变量;先自身减1,然后再执行其他操作
    

12. 关系运算符

  • (大于) < (小于) >= (大于等于) <=(小于等于) == (是否相等) != (是否不等于)
  • 使用关系运算符的时候的返回值必须是一个布尔类型(boolean)的数据

13. 逻辑运算符【重点】

返回的结果也是一个布尔类型的数据

  • 与:&&

  • 语法格式:

条件1 && 条件2 &&......
  • 条件1和条件2都为true的时候整体的结果才为true。只要条件1或者条件2有一个为false的话,就整体为false

  • 逻辑与:且 取钱 得有卡且得有密码

  • 或:||

  • 语法格式:

条件1 || 条件2 ||.....
  • 条件1和条件2都为false的时候,才整体为false,如果有一个为true,整体就为true

  • 生活中案例:你一把 你媳妇一把,你的一把丢了(false) 你媳妇还有钥匙(true) 整体还可以开门

  • 非: !

  • 语法格式:

!条件
  • 条件为true的话,整体返回false 条件为false的话,整体就是返回true

  • 犟 反着来

14.逻辑运算符的短路原则【重点】

  • 逻辑与的短路原则:

  • 条件1 && 条件2 &&…

  • 条件1为false的话,整体就为false了。条件2和以后的条件都不再执行了

  • 条件1的结果已经决定了整体的结果,为了提高咱们的执行的效率

  • 逻辑或的短路原则:

  • 条件1 || 条件2 || …

  • 条件1为true的话,整体就为true。后面的条件就不执行了

15. if分支【重点】

  • 语法格式:
if (表达式) {
	语句体
}
  • 表达式:他的结果必须是一个布尔类型的数据

  • 执行流程:如果表达式为true的话,就执行大括号后面的语句体,如果表达式为false,就不执行语句体

16. if - else 分支【重点】

  • 语法格式:
if (表达式) {
	语句体1
} else {
语句体2
}
  • 执行流程:如果表达式true,执行语句体1,不会执行语句体2。如果表达式为false,不执行执行语句体1,执行语句体2,语句体1和语句体2不能同时执行

  • 好比一个三叉路口:要么向左走 要么向右走

17. if - else if 分支【重点】

  • 语法格式:
if (表达式1) {
语句体1

} else if (表达式2) {
语句体2
} else if (表达式3) {
语句体3
}.....
else {
   语句体n
}
  • 执行流程:如果碰到if后面的小括号里面的表达式为true就执行当前的大括号里面的语句体,其他的语句体不执行

  • 只能选择其一;好比多叉路口

18. switch -case 分支【重点】

  • 也是一种选择,只有满足当前的条件的时候才会执行当前的语句体

  • 语法格式:

switch (表达式) {
case 常量1:
   语句体1;
   break;
case 常量2:
   语句体2;
   break;
case 常量n:
   语句体n;
   break;
....
default:
   语句体n+1;
   break;
}
  • 执行流程:表达式的值,去匹配case后面的常量,如果匹配成功的话,就执行当前的语句体。如果没有匹配成功case后面的常量的话,就执行default下面的语句体

  • swicth-case的面试题

  • switch (表达式){
    
    }
    表达式的值可以是什么数据类型的:
    int、short、byte、char、enum、String(jdk1.8以后可以)
    

19. while 循环

  • 语法格式:
while (布尔表达式) {
	语句体
}
  • 执行流程:当代码while以后,去判断布尔表达式,如果布尔表达式为true,就执行语句体。然后再回到while,再次判断布尔表达式,如果布尔表达式为true,执行语句体。再次回到while,判断布尔表达式。如果布尔表达式为false,不再执行语句体。循环结束

20. do-while循环

  • 语法格式:
do {
	语句体
} while(布尔表达式);
  • 执行流程:首先代码走到do的时候,先执行do后面的语句体,然后再到while关键字,去判断布尔表达式,如果布尔表达式为true的话,再次回到do 然后去执行语句体,直到布尔表达式为false的话,就结束循环

21. for循环【重点】

  • 语法格式:
for (表达式1; 表达式2; 表达式3) {
	语句体
}
表达式1:初始化的条件
表达式2:终止条件
表达式3:循环条件
  • 执行流程:首先执行表达式1,再执行表达式2,如果表达式为true的话,执行大括号里面的语句体。再执行表达式3,直到表达式2为false的话,循环结束了

22. 嵌套循环【重点】

  • 前提是for循环,一个循环里面套另外一个循环,并秉承着一点,内存层的循环结束以后再继续外层循环

  • 外层循环控制行数,内层循环控制列

23. 三目运算符【重点】

开发用的很多

  • 语法格式:
数据类型 x = (表达式) ? value1 : value2;
  • 执行流程:表达式为true的话,返回 value1,如果表达式为false的话,返回value2

24.标准十进制ASCII码表

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ycopD5nM-1661776721112)(D:\千峰\1-10预习\day05\code\标准十进制ASCII码表.jpg)]

25.方法【重点】

  • 无参数无返回值的方法
语法格式:
public static void 方法的名字 () {
 方法体
}
注意事项:
1.方法的声明必须再类中,在main主函数的外面
2.方法的调用必须再main主函数中调用,使用方法的名字调用
3.方法的名字一定和变量的命名一致
  • 有参数无返回值的方法
    语法格式:
    public static void 方法的名字 (数据类型 参数的名字, 数据类型 参数名字,…) {
    方法体
    }
    1.方法的声明处的参数叫形参。方法的调用处是实参。
    2.方法声明处的参数一定要和方法调用处的参数的类型要保持一致的

- 无参数有返回值的方法

语法格式:
public static  数据类型  方法的名字 () {
 return 返回值;//返回值的数据类型要和上面的数据类型保持一致
}
无返回值的方法和有返回值的区别:
1.无返回值是在方法的声明处的大括号里面直接打印
2.有返回值的是调用的时候,结果给一个变量来接一下
- 有参数有返回值的方法
语法格式:
public  static 数据类型 方法名字 (数据类型 参数名字, 数据类型 参数名字,......){
 方法体
 return 返回值;
 }

带返回值的方法,返回的值存在哪里了

如果返回的是八大基本数据类型,则返回到了本地方法栈中
如果返回的是引用数据类型,则返回到了堆内存中

26. break、continue关键字

关键字适用范围循环中使用的作用(不同点)相同点
breakswitch - case 和循环结构中结束当前循环关键字后面不能声明执行语句
continue循环结构中结束当次循环关键字后面不能声明执行语句

27. 数组

  • 数组的理解:数组(Array),是多个相同类型数据按一定顺序排列的集合,并使用一个名字命名,并通过编号的方式对这些数据进行统一管理。
  • 数组相关的概念:

  • 数组名

  • 元素

  • 角标、下标、索引

  • 数组的长度:元素的个数

  • 数组的特点:

  • 数组是有序排列的

  • 数组属于引用数据类型的变量。数组的元素,既可以是基本数据类型,也可以是引用数据类型

  • 创建数组对象会在内存中开辟一整块连续的空间

  • 数组的长度一旦确定,就不能修改。

  • 数组的分类:

  • ① 按照维数:一维数组、二维数组、。。。

  • ② 按照数组元素的类型:基本数据类型元素的数组、引用数据类型元素的数组

  • 一维数组元素的默认初始化值

  • 数组元素是整型:0
  •    数组元素是浮点型:0.0
    
  •    数组元素是char型:0或'\u0000',而非'0'
    
  •    数组元素是boolean型:false
    
  •    数组元素是引用数据类型:null
    

28 . 成员变量和局部变量

变量按照声明的位置可以分为成员变量和局部变量

  • 成员变量

  • 实例变量(不以static修饰)

  • 类变量(以static修饰)

  • 局部变量

  • 形参(方法、构造器中定义的变量)

  • 方法局部变量(在方法内定义)

  • 代码块局部变量(在代码块内定义)

  • 局部变量和成员变量【面试题】

区别成员变量局部变量
定义的位置类的大括号的后面 (属性)定义再方法体中
作用用来描述当前对象的属性的(特征)在方法中保存变量的值的
初始话的值String =>null int==>0 浮点型=>0.0 char==>'\u0000’或0使用的时候一定要进行赋值操作
内存堆里面栈里面
作用域作用整个类的只能在当前的方法中使用

29. 八大基本数据类型【细节点】

byte:
	默认值 0 byte占用的空间是比较小的	占int类型四分之1
short:
	默认值	占int类型二分之一
int:
	默认值	0	开发中最常用的就是int
long:
	比较大的整数的系统上面	内存就需要大点
float:
	默认值是0.0f	浮点数不能表示精确的值,比如货币	不会打印出来0.0f  而是0.0
double:
	默认值:0.0d	不会打印出来0.0d  而是0.0
char:
	'\u0000'===>0
	'\uffff'===>65535
boolean:
	默认值:false

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值