JavaSE之基础语法知识点总结

JavaSE之基础语法知识点总结


前言

本文主要内容有计算机基础、Java语言概述与环境搭建、Java语法基础、Java中的运算符、流程控制语句等。


一、计算机基础

1.计算机

  由软件和硬件组成。

2.硬件

  由cpu、主板、内存、电源、显示器等部件组成。

3.软件

  系统软件:有DOS,windows,Linux,Mac… IOS,Android等;
  应用软件:QQ,办公软件等。

4.软件的结构划分

  C/S结构:Client-Server :客户端和服务器端的交互。
  B/S结构:Browser-Server:浏览器端和服务器端的交互。

5.常用的Dos命令

作用格式
盘符切换盘符号:
当前目录下文件的详情信息dir
创建文件夹/目录md 文件夹/目录的名称
切换目录名称cd 文件夹名称
回退上一级目录cd …
进入多级目录cd 目标目录
多级目录回退到根目录cd \
清屏cls
删除目录rd 文件夹名称
查看本地ip地址ipconfig
查看本机与其他计算机的通信ping ip
创建文件copy con 文件名称
删除带内容的目录(询问)rd /s
暴力删除(不询问)rd /s /q 目录名称
删除单个文件del 文件名称
批量删除带某一后缀名的文件del *.txt

6.进制的组成规则

  二进制:由0、1组成,以0b开头。
  八进制:由0、1、2、3、4、5、6、7组成,以0开头。
  十进制:由0、1、2、3、4、5、6、7、8、9组成。
  十六进制:由0、1、2、3、4、5、6、7、8、9、a、b、c、d、e、f组成,以0x开头。

7.进制转换

  (1)某一进制转十进制
    位权展开法:每个位系数乘以基数的权次幂相加。
    系数:每个位上的数据值本身。
    基数:X进制转到十进制,X为基数。
    权值:从右边开始,并且从0开始编号,给基数进行编号(0,1,2,3,4…)。

			举例:
			0b100
			100
			=1*2^2+0*2^1+0*2^0
			=4

  (2)十进制转到某一进制
    用当前十进制数据除以基数,一直除到商为0,余数反转得到相应进制数。

		举例:
		52转为八进制
		52除8等于6余4
		6除8等于0余6
		将余数倒序排列结果为:064

二、Java语言概述与环境搭建

1.软件开发

  需要借助一些工具:输入计算机数据以及指令
  常用的开发工具:
    notepad++:高级记事本
    eclipse:开发工具(半自动化)
    IDEA:智能化,精确化
    前端开发工具:HBuilder,webstorm
    其他服务器:
      web应用服务器:tomcat(理论并发量:500个)
      Http服务器:nginx(理论并发量:5万)

2.Java平台版本

  JavaSE:针对桌面应用程序开发。
  JavaME:嵌入式的解决方案—移动端:Android。
  JavaEE:针对企业开发的一套解决方案。

3.Java语言的特点

  简单性、解释性、面向对象、高性能、分布式处理、多线程、健壮性、 动态、结构中立、安全性、开源、跨平台。

4.jre、jdk、jvm三者的关系

  JDK (Java Development Kit):是Java程序开发工具包,包含JRE和开发人员使用的工具。
  JRE(Java Runtime Environment):是Java程序的运行时环境,包含JVM 和运行时所需要的核心类库。
  JVM:java虚拟机,java语言实现跨平台的基础。
  三者关系:JDK > JRE > JVM

5.配置环境变量

  (1)此电脑/计算机---->右键—属性----->高级系统设置---->环境变量
  (2)在系统变量新建一个变量
    变量名:JAVA_HOME
    变量值:jdk的安装目录的路径

		例如:D:\develop_software\Java\jdk1.8.0_162

  (3)path中:添加新的变量值
    变量值:%JAVA_HOME%\bin
    建议放置在最前面:%JAVA_HOME%\bin;%System32%
    注意:如果path系统变量在同一行上,每一个系统变量中间需要分 号隔开。
  (4)目的:可以在计算机的任何位置编译java文件以及运行 java文件。

三、Java语法基础

1.关键字

  关键字:被Java语言赋予特定的含义的单词。

	例:
	class:类(最基本的单元)
	public:权限修饰符 (公共的,公开的)
	static:静态修饰符(面向对象部分讲解)
	void:方法没有具体返回值
	数据类型:
	基本类型:int,boolean,double,float,long,byte,short...
	面向对象部分:extends(继承)  interface(接口)  abstract(抽象)

2.注释

  作用: 提高代码阅读性

	划分:
		1)单行注释:    //注释的文字
		2)多行注释:    /* 注释的文字  */
		3)文档注释:   /** 注释的文字 */

3.标识符

  (1)作用:给类,接口,变量以及方法等所起名字的字符序列。
  (2)命名规则:
    1)数字字符
    2)英文大小写字母
    3)_和$符号
  (3)注意事项:
    1)不能以数字开头
    2)不能包含特殊符号,除了_和$
    3)不能是Java中的关键字
    4)区分大小写
    5)需做到见名知意
  (4)包: 目录/文件夹:字母全部小写
    定义格式: package cn.hsbc.dev;
    单级包: com
    多级包:开发中(公司域名反写) ,中间用点隔开(分包)

		举例:cn.hsbc.dev

  (5)类(接口)的命名规则:
    1)一个单词:第一个字母大写,其余小写

			举例:class Demo{}     class  Hello{}

    2)多个单词:每一个单词的首字母大写,其余小写 (大驼峰命名法)

			举例:  class MakeNameDemo{}

  (6)变量,方法的命名规则:
    1)一个单词:单词全部小写

			举例: int price = 10 ;
				  main()

    2)多个单词:第一个单词全部小写,从第二个单词开始,首字母大写,其余小写(小驼峰命名法)

			举例:checkName()			

  (7)常量的命名规则:
    1)一个单词: 字母全部大写

			举例:"HEELO"	

    2)多个单词:每个单词字母全部大写,单词和单词之间使用下划线隔 开

			举例:"HELLO_WORLD"

4.编码格式

  gbk:中国中文编码表 :一个中文对两个字节
  gb2312:gbk升级版本(包含特殊的中文字符)
  utf-8:一个中文对应三个字节
  Iso-8859-1:拉丁文码表

5.Java中数据类型划分

  (1)基本数据类型:四类8种

种类类型名称字节
整数类型byte字节类型占1个字节
short短整型占2个字节
int整数占4个字节
long长整型占8个字节
浮点类型float单精度占4个字节
double双精度占8个字节
字符类型char字符类型占2个字节
布尔类型boolean布尔类型占1个字节

  (2)引用数据类型:数组,接口,类(具体类,抽象类)
  (3)定义long类型的注意事项:
    需要在当前变量值的后面加上标记:L或者l(建议大写L),描述当前变量是长整型
  (4)定义float类型的注意事项:
    在变量值的后面标记当前是一个单精度变量:F/f

6.常量

  (1)定义:在程序的执行过程中,其值不发生改变的量!
  (2)分类:
    1)字面值常量
      字符串常量:使用双引号括起来的内容
      字符常量:使用单引号括起来的单个内容
      整数常量:整数:默认十进制数据
      小数常量:小数数据
      布尔常量:true/false
      空常量:null
    2)自定义常量:使用final关键字修饰的变量,同时必须赋初值。

7.变量

  (1)变量:值可以变得量
  (2)变量的三要素:数据类型、变量名(遵循标识符的规则)、初始化值
  (3)书写格式:数据类型 变量名 = 初始值;
  (4)注意事项:
    1)=代表赋值,叫做赋值号。
    2)同一个方法中的变量不能重复声明。
    3)在方法中声明的变量,他的作用域在整个方法中。
    4)变量必须初始化后(变量必须有值),才能使用。

8.原码、反码、补码

  正整数的原码、反码、补码都为其二进制数;
  负数的原码为其二进制数,反码为原码取反、补码为反码+1。
  正整数的最高符号位为0,负数的最高符号位为1。
  负数取反时,最高符号位不变,数值位0变1,1变0。

9.数据类型的转换

  取值范围大小关系:byte<short<int<long<float<double
  (1)自动转型,也叫隐式类型提升(取值范围小转大)

		举例:
			byte b = 10;
			short s = b;
			int i = s;
			long l = i;
			float f = l;
			double d = f;

  (2)强制转型(取值范围大转小)

		举例:
			double d = 12.123;
			float f = (float)d;
			long l = (long)f;
			int i = (int)l;
			short s = (short)i;
			byte b = (byte)s;

四、Java中的运算符

1.算术运算符

  (1)算术运算符

名称符号用法
+求和
-求差
*求积
/求商
取余%求余
自加++自身加1
自减自身减1

  (2)+±-的使用
    1)单独使用
      结论:无论++还是–在变量前面还是后面:都是对当前该变量值进行自增1或者自减1。
      应用场景:结合流程控制语句之循环语句去使用。
    2)参与运算使用
      如果++或者–在变量前面,先自增1或者自减1,然后运算。
      如果++或者–在变量后面,先运算(赋值),然后在自增1或者自减1。

2.赋值运算符

名称符号用法
赋值=为变量常量赋值
加等于+=两边相加再赋给左边
乘等于*=两边相乘再赋给左边
除等于/=左边除以右边再赋给左边
模等于%=左边模以右边再赋给左边
减等于-=左边减右边再赋给左边

  注意事项:
     “=”不能写成”==”,”==”表示比较运算符,连接表达式最终结果为true/false。+= ,*=,-= ,/= ,%= 底层有强制类型转换。

3.比较运算符(关系运算符)

  (1)比较运算符:>,<,>=,<=,==,!=

		举例:变量x范围: 
		数学表达式:  3<=x<=5
		Java表表达式:x>=3 &&(逻辑运算符) x<=5
		|| (逻辑运算符)

  (2)比较结果:连接的表达式无论是简单,还是复杂的,最终结果true/false
  (3)注意事项:==不能写成=。

4.逻辑运算符

  (1)逻辑运算符:

名称符号结论
逻辑单与&有false,则false
逻辑单或|有true,则true
逻辑异或^相同则为false,不同则为true
逻辑非!非true,则false;非false,则true
逻辑双与&&有一个不满足条件,就false
逻辑双或||有一个满足条件,就true

  (2)注意事项:
    1)偶数个非,是当前结果本身。
    2)逻辑双与&& 和逻辑单与&的相同点与不同点
      ①相同点:有false,则false(有一个不满足条件,就false)
      ②不同点:逻辑双与&& 连接的表达式,如果左边的表达式为false, 右边就不执行。(短路效果)
    3)逻辑双或|| 和逻辑单或|的相同点与不同点
      ①相同点:有true,则true(有一个不满足条件,就true)
      ②不同点:逻辑双||连接的表达式,如果左边为true,右边不执行。

5.位运算符

  (1)基本的运算符号
    把十进制转换为二进制,再做运算
    & : 同位比较,两者为1,则为1
    | : 同位比较,有1,则为1
    ^ :同位比较,相同为0,不同为1
    ~(反码):按位取反,全部1变0,0变1;
  (2)移动符号
    1)左移(<<):左移动,将最高符合位丢弃掉,在右边补齐0。
      特点:将<<符号左边的数据乘以2的移动次幂。
    2)右移(>>): 右移动,如果最高符号位为0,左边补0,如果最高符号 位为1,左边补齐1。
      特点:将>>符号左边的数据除以2的移动次幂 。
    3)无符号右移(>>>):向右移动,无论最高符号位为0还是1,左边补0。
  (3)注意事项:
    1)&、|、^ 两侧为数值,此符号为位运算符,两侧为boolean值,此运算符为逻辑运算符。
    2)位异或^符号特点:一个数据被另一个数据位异或两次,结果是它本身。

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

  (1)格式:
    (表达式) ? 执行true的结果 : 执行false的结果
    表达式:可以是简单的或者复杂的表达式,结果必须为true/false。
  (2)执行流程:
    1)先判断表达式是否成立,如果成立,执行true的结果
    2)如果不成立,执行false的结果

五、流程控制语句

1.顺序结构语句

  一旦进入main方法(由Jvm 调用)中,从有效行开始依次从上往下执行。

2.简单if分支

  (1)格式:

		if(表达式){
			语句;
		}

  (2)执行流程:
    判断表达式是否成立,如果是true,成立,执行语句;
    如果不成立,不执行。
  (3)应用场景:针对单个业务场景进行判断。

3.if…else语句

  (1)格式:

		if(表达式){
			语句1;
		}else{
			语句2;
		}

  (2)执行流程:
    首先判断表达式是否成立,如果是true,执行语句1
    如果不成立,执行语句2;
  (3)应用场景:针对两种情况进行判

4.多重if

  (1)格式:

		if(表达式1){
		语句1;
		}else if(表达式2){
		语句2;
		...
		}else{
			语句n+1 ;
		}

  (2)执行流程:
    首先判断表达式1是否成立,如果成立,执行语句1,if语句结束。
    如果表达式1不成立,再次判断表达式2是否成立,如果成立,执 行语句2,语句结束。
    如果上述表达式都不成立,就执行else中的语句,if语句结束。
  (3)应用场景:针对多种情况进行判断。

5.嵌套if语句

  (1)格式:

		if(表达式){
			if(表达式1){
				语句1;
			}else{
				语句2;
			}
		}else{
			if(表达式11){
				语句11;
			}else{
				语句22;
			}
		}		

  (2)流程:
    1)首先判断外层if中表达式是否成立;
      如果成立,执行表达式1是否成立;
      如果表达式2成立,执行语句1;否则,执行语句2;
    2)外层if中表达式不成立,就执行else中的语句
      首先判断表达式11是否成立,如果成立,执行语句11,
      否则执行语句22;
  (3)注意事项:有if的地方需要有一对{}, 有{}的地方不能有分号。

6.switch语句

  (1)格式

		switch(表达式){
			case 值1:
					语句1;
					break ;
			case 值2:
					语句2;
					break ;
				...
			default:
					语句n;
					break ;
		}

  (2)执行流程:
    1)先判断表达式的值它和case语句值1,是否匹配;如果匹配,执行语句1,遇见break ,switch语句结束。
    2)如果值1不匹配,继续判断值2是否匹配,如果匹配,执行语句2,遇见break,switch语句结束。
    3)如果上面的所有case语句都不匹配,执行default语句,执行语句n, 直接结束。
  (3)switch中表达式的数据类型
    可以使用的类型:byte,short,char,int
    JDK5之后可以使用枚举enum
    JDK7之后可以使用String类型
  (4)注意事项:
    1)switch语句中的case语句后面跟常量值,不能跟变量。
      对比:javascript:switch语句 中的case可以是常量也可以变量
    2)case语句中的break不能轻易省略,否则就会造成"case穿透"。
      如果没有写break,跟下面case值不进行比较,直接运行语句,直到遇见break结束。
    3)default语句:书写位置默认是在末尾,但是它也可以在switch语句中的任何位置,不影响执行流程。
    4)如果default在语句的末尾,break可以省略,如果在语句中的话,不建议省略break ;
    5)关于switch语句的结束
      遇见break (中断,结束的意思) ,switch语句结束
      语句默认执行到末尾。

7.for循环

  (1)格式:

		for(初始化语句;条件表达式;步进语句){
			  循环体语句;
		}	

  (2)执行流程:
    1)初始化语句给变量进行赋值,只执行一次
    2)判断这个条件表达式是否成立,如果成立,就执行循环体语句,再去执行步进语句。
    3)再次判断条件表达式是否成立,如果成立,继续上面执行方式…
    4)一直循环到条件表达式不成立的时候,for循环结束。

8.for循环的嵌套

		for(初始化语句;条件表达式;步长语句){
			for(初始化语句;条件表达式;步长语句){
				循环体语句;
			}
		}

9.while循环

  (1)基本格式

		while(初始化语句以及条件表达式){
			 循环体语句;
			 步进语句(控制体语句) ;
		}

  (2)扩展格式

		初始化语句;
		while(条件表达式){
			循环体语句;
			步进语句(控制体语句) ;
		}

  (3)执行流程:
    1)首先初始化语句进行赋值
    2)判断条件表达式是否成立,如果成立,执行循环体语句 ,执行步进语句;
    3)继续判断条件表达式是否成立,如果成立,执行循环体语句 ,再次执行步进语句;
     …

    4)当条件表达式为false,不成立,while循环语句结束

10.do-while循环

  (1)语法结构

		初始化语句;
		do{
			循环体语句;
		步进语句;
		}while(表达式);

  (2)执行流程:
    1)执行代码块(一遍)
    2)判断表达式
      true – 执行代码块
      执行第二个步骤
      false - 跳出整个do-while循环

11.while循环和for循环的区别

  (1)从格式上不太一样

		for(初始化语句;条件表达式;步进语句){
			循环体;
		}

		初始化语句;
		while(条件表达式){
			循环体语句;
			步长语句;
		}
		
		初始化语句;
		do{
		循环体语句;
		步进语句;
		}while(表达式);

  (2)从内存角度:(是否节省内存空间)
    变量: 编译时期变量  运行时期变量
        int i = 10 ;      Integer(引用类型) i = 100 ;
    for循环:for循环语句结束,变量从内存中释放掉了,节省内存空间(优先)。
    while和do-while:循环语句结束,依然可以访问变量,耗费内存空间。
    变量/对象最终程序结束,都需要垃圾回收器GC回收。

  (3)应用场景:是否明确次数
    1)明确循环次数:使用for循环(使用居多)
      举例:模拟用户登录, 给三次机会!
    2)不明确循环次数:while循环和do-while循环
      举例:猜数字游戏: (不知道猜多少次,能猜中!)

  (4)执行顺序:
    for : 先判断,再执行
    while : 先判断,再执行
    do-while : 先执行一遍,再判断

12.两个死循环

		格式1:
			for(;;){
				循环体语句;
			}
		格式2 :(推荐)
			while(true){
				循环体语句;
			}

  注:使用死循环需要为其找出口

13.跳转控制语句

  (1)break:中断,结束的意思
    使用:不能单独使用,没有意义,在switch中以及循环中使用。
    循环中使用:
      1)可以在单层循环中使用
      2)早期的使用:用在for循环嵌套中使用

  (2)标签语句:给外层循环/内层循环起一个名字
    格式:标签名称:for(初始化语句;条件表达式;步进语句){…}

		举例:a:for(int i = 1;i<=5;i++){
					for(int j = 1;j<=5;j++){
						if(i == 3){
							//结束掉外层循环
							break a;
						}
						System.out.println(i + " -- " + j);
					}
				}

  (3)continue: 结束当前循环,立即进入下一次循环
    作用:单独不能使用,在循环语句中使用

  (4)return是具体用在具有返回值类型的方法中使用

六、提及的知识

1.Scanner的使用

  Scanner是Java核心类: java.util.Scanenr;
  (1)从键盘录入一个数据

		操作步骤:
			1)导包: import java.util.Scanner;
			2)创建键盘录入对象
				Scanner  键盘录入的对象名 = new Scanner(System.in) ;
			3)友情提示: 输出语句 "请您输入一个数据:"
			4)接收数据 (接收int类型数据)
			 	int 接收的变量名=  键盘录入的对象名.nextInt() ;
			5)输出/完成业务操作

  (2)从键盘先录入一个int数据,在录入一个String数据
    1)存在问题:
      先录入int类型的数据,再录入String,字符串数据会将回车符号录入(表现为没有录入),每次录入数据完成需要敲"回车符号" ,回车符号本身是一个字符串值。
    2)解决方法:
      在录入String数据之前,重新创建一个键盘录入对象,使用该对象进行String数据录入。
  (3)注意事项:
    1)Java中只要不是java.lang包下的类都需要导包
    2)nextInt():录入下一个 int类型的数据
    3)在录入字符串数据类型时可以使用next()方法,也可以使用 nextLine()方法,建议使用nextLine()。


总结

  本文主要从计算机基础、Java语言概述与环境搭建、Java语法基础、Java中的运算符、流程控制语句等方面总结了JavaSE基础语法部分的知识点。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值