博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JAVA
阅读量:5283 次
发布时间:2019-06-14

本文共 6588 字,大约阅读时间需要 21 分钟。

一:关键字

概述:被JAVA语言赋予特定含义的单词

特点:组成关键字的字母全部小写

注意事项:

(1)goto和const作为保留字存在,目前并不使用

(2)类型Notepad++这样的高级记事本,针对关键字有特色的颜色标记,非常直观

二.标识符

概述:就是给,接口,方法,变量等起名字时使用的字符序列

组成规则:

(1)英文大小写字母

(2)数字字符

(3)$和_

注意事项:

(1)不能以数字开头

(2)不能是JAVA中的关键字

(3)区别大小写

三:标识符中常见的命名规则

(1)包:其实就是文件夹,用于把相同的类名进行区分,全部小写

单级:linyi
多级:cn.itcast
(2)类或者接口:
一个单词组成:单词的首字母必须大写
举例:Student,Dog
多个单词组成:每个单词的首字母必须大写
举例:HelloWord,UserName
(3)方法或者变量:
一个单词:单词的首字母小写
举例:main,age
多个单词:从第二个单词开始,每个单词的首字母大写
举例:studentAge,showAllnames()
(4)常量:
一个单词:全部大写
举例:PI
多个单词:每个字母都大写,用_隔开
举例:STUDENT_MAX_AGE

四:注释概述及其分类

概述:用于解释说明程序的文字

作用:解释说明程序,提高程序的阅读性,可以帮助我们调试程序

注释分类格式:

(1)单行注释://注释文字

(2)多行注释:/*注释文字*/

(3)文档注释:/**注释文字*/

五:常量

概述: 常量是一种特殊的变量 值一旦被设定 ,在程序运行过程中不允许改变,常量名一般使用大写字符

格式:fianl 常量名= 值

常量分类:

(1)字面值常量

(2)自定义常量(后面讲)

1.字面值常量

(1)字符串常量:用双引号括起来的内容,例"A","b","0"

(2)整数常量:所有整数,例如12,23

表示形式:二进制、八进制、十进制、十六进制()

进制概述:进制:就是进位制,对于任何一种进制--X进制,就表示某一位置上的数运算是逢X进一位。二进制是逢二进一,八进制是逢八进一,十进制是逢十进一,十六进制是逢十六进一

(3)小数常量:所有小数,例如12.34,12.56

(4)字符常量:用单引号括起来的内容,例'A','a','0'

(5)布尔常量:较为特有,只有true和false

(6)空常量:null

在Java中针对整数常量提供了四种表现形式:

A:二进制  由0,1组成。以0b开头。
B:八进制  由0,1,...7组成。以0开头。
C:土进制  由0,1,...9组成。 整数默认是十进制。
D:土六进制  由0,1,...9,a,b,c,d,e,f (太小写均可)组成。以0x开头。

有符号数据表示法:

在计算机内,有符号数有3种表示法:原码、反码和补码。所有数据的运算都是采用补码进行的。

原码:

就是二进制定点表示法,即最高位为符号位,“0"表示正,“1”表示负,其余位表示数值的大小。

反码:

正数的反码与其原码相同;负数的反码是对其原码逐位取反,但符号位除外。

补码:

正数的补码与其原码相同; -负数的补码是在其反码的未位加1。

例如:用原码,反码,补码分别表示  +7和-7,首先我们得到7的二进制:111

原码:正数的原码最高位是0,负数的原码最高位是1,其他是数值位

        符号位   数值
+7       0        0000111
-7       1        0000111

反码:正数的反码和原码相同,负数的反码与原码是符号位不变,数值位取反,就是1变0,0变1

        符号位   数值

+7       0       0000111
-7       1       1111000

补码:正数的补码与原码相同,负数的补码是在反码的基础上加1

      符号位    数值
+7       0      0000111
-7       1       1111001

六:变量

概述:在程序执行的过程中,在某个范围内可以发生改变的量(理解:如同数学中的未知数)

定义变量的格式:

a:数据类型 变量名 = 初始化值;
b:数据类型 变量名;
c:变量名 = 初始化值;

注意:格式是固定的,记住格式,以不变应万变

使用规则:

1Java中的变量需要先声明后使用

2 变量使用时,可以声明变量的同时进行初始化,也可以先声明后赋值 String a = 1; /String a; a=1;

3 变量中每次只能赋一个值,但可以修改多次

4.main 方法中定义的变量必须先赋值,然后才能输出

使用变量时要注意的问题:

A:作用域:
变量定义在哪一级大模块中,哪个大括号的范围就是这个变量的作用域,相同的作用域中不能定义两个同名变量。
B:初始化值:
没有初始化的变量不能直接使用
只要在使用前给值就行,不一定非要在定义的时候立即给值
推荐在定义前就给值
在一行上建议只定义一个变量
可以定义多个,但是不建议

七:数据类型

基本数据类型:

(1)数值型:

整数类型:byte,short,int,long

浮点类型:float,double

(2)字符型:char

(3)布尔型:boolean

引用数据类型:

(1)类:class

(2)接口:interface

(3)数组:[]

八:数据类型转换

默认转换:(从小到大的转换)

byte,short,char- -int- -long一 float -double

byte ,short, char相互之间不相互转换,他们参与运算首先直接转换为int类型

boolean类型不能转换未其他数据类型

例如:

byte c=5;

int d=7;
System.out.println(c+d);

强制转换:(从大的小的转换)

格式:

目标数据类型 变量 = (目标数据类型) (被转换的数据);
注意:

整数默认是int类型

浮点数默认是double类型
不要随意的去使用强制转换,因为它隐含了精度损失问题

长整型建议用L或者l标记,建议使用L

单精度浮点数用F或者f标记,建议使用F

例如:

byet a=3;

int b=4;

byte c=(byte)(a+b);

九:进制转换

其他进制到十进制:

系数:就是每一个位上的数

基数:X进制的基数就是X

权:对每一个位上的数,并且从0开始编号,对应的编号就是该数据的权

结果:系数*基数^权次幂之和

十进制到其他进制:

除基取余,直到商为0,余数反转

进制快速转换法:

A:十进制和二进制间的转换:8421码

B:二进制到八进制、十六进制的转换

十:运算符

1.算术运算符:

+,-,*,/都是比较简单的操作,简单演示即可

+的几种作用:

加法:System.out.println(3+4);

正数 :System.out.println(+4);

字符串连接符:

System.out.println('a');//只打印一个字符的情况下控制台只会输出这个字符

System.out.println('a'+1);//char类型参与运算首先会转换成int类型并参与运算

System.out.println("hellow"+'a'+1);//运算是从左到右开始运算的,所以这里的值是字符串hellowa1

注意事项:

A:整数相除只能得到整数,如果想得到小数,必须先转换为浮点类型

/和%的区别:

B:/获取的是除法操作的商,%获取的是除法操作的余数

++和--的应用:

单独使用:

++--放在操作数的前面或者后面效果是一样的(这种用法是我们比较常见的)
参与运算使用:
++或者--放在后面是先参与运算再自增或自减
++或者--放在前面是先自增或自减再参与运算

2.赋值运算符:

基本的赋值运算符:=(把右边的数据赋值给左边)

扩展的赋值运算符:+=,-=,*=,/=,%=(把左边和右边做计算再赋值给左边)

扩展的赋值运算符隐含了一个强制类型转换:

例如:

short int =1

s+=1;
不是等价于s=s+1;
而是等价于s=(s的数据类型)(s+1);

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

注意:

(1)比较运算符的结果都是boolean类型,也就是要么是true,要么false

(2)比较运算符"=="不能误写成"="

特点:无论操作是简单还是复杂结果肯定是boolean类型

4.逻辑运算符:

​逻辑运算符用于连接布尔型表达式,在java中不可以写成3<x<6,应该写成x>3x&x<6;

注意:当逻辑运算符两边是数据做的是位运算,当逻辑运算符两边是布尔值做的是逻辑运算

特点:逻辑运算符一般用户连接boolean类型的表达式或值

表达式:就是用运算符把常量或者变量连接起来的符合java语法的式子
算术表达式:a+b
比较表达式:a==b
结论:
&逻辑与:有false则false,只有全部结果为true才会true
|逻辑或:有true则true,只有全部为false才会为false
^逻辑异或:结果相同为falser,不同为true
!逻辑非:非false则true,非true则false 特点:偶数个!不改变本身

“&”和“&&”的区别:

单&时,左边无论真假,右边都进行运算

双&&时,如果左边为真,右边参与运算,如果左边为假,那么右边不参与运算

“|”和“||”的区别:

单|时,左边无论真假,右边进行运算

双||时,当左边为true时,右边不参与运算,如果左边为false,那么右边参与运算

异或( ^ )与或( | )的不同之处是:当左右都为true时,结果为false。

5.位运算符:

(1)<<:空位补0,被移除的高位丢弃。

算法:<<把<<左边的数据*2的移动次幂

(2)>>:被移位的二进制最高位是0,右移后,空缺位补0; 最高位是1,最高位补1。

算法:>>把>>左边的数据/2的移动次幂

(3)>>>:被移位二进制最高位无论是0或者是1,空缺位都用0补。

(4)&:任何二进制位和0进行&运算,结果是0; 和1进行&运算结果是原值。

(5)|:任何二进制位和0进行 | 运算,结果是原值; 和1进行 | 运算结果是1。

(6)^:任何相同二进制位进行 ^ 运算,结果是0; 不相同二进制位 ^ 运算结果是1。

^的特点:某一个数据对另一个数据异或两次,结果不变

6.三元运算符:

格式:(关系表达式)?表达式1:表达式2;

如果条件为true,运算后的结果是表达式1;

如果条件为false,运算后的结果时表达式2;

注意:布尔类型格式后面不需要跟true和false,因为它本身就是布尔类型。

十一:键盘录入数据

概述:我们目前在写程序的时候,数据值都是固定的,但是实际开发中,数据值肯定是变化的,所以,我准备把数据改进为键盘录入,提高程序的灵活性。

如何实现键盘录入数据呢?(目前先记住使用)

导包(位置放到class定义的上面) import java.util.Scanner;

创建对象 Scanner sc = new Scanner(System.in);

接收数据 int x = sc.nextInt();

十二:流程控制语句

流程控制语句分类:

1.顺序结构:从上往下,依次执行

2.选择结构:按照不同的选择执行不同的代码

if语句 :if语句有三种格式

if语句第一种格式:

if(关系表达式) {

     语句体

    }

执行流程 :

(1)首先判断关系表达式看其结果是true还是false

(2)如果是true就执行语句体 如果是false就不执行语句体

注意事项:

(1)关系表达式无论简单还是复杂,结果必须是boolean类型

(2)if语句控制的语句体如果是一条语句,大括号可以省略;如果是多条语句,就不能省略,建议永远不要省略

(3)一般来说,有左大括号就没有分号,有分号就没有左大括号

if语句第二种格式:

if(关系表达式) {

            语句体1;   

 }else { 语句体2;

    }

执行流程:

(1)首先先判断关系表达式看其结果是true还是false

(2)如果是true就执行语句体1

(2)如果是false就执行语句体2

三元运算符和if语句格式二的区别:

三元运算符实现的,都可以采用if语句实现,反之不成立

什么时候if语句实现不能用三元改进呢?当if语句控制的操作时一个输出语句的时候就不能,因为三元运算符是一个运算符,
运算符操作完毕后就应该有一个结果,而不是输出

if语句第三种格式:

if(关系表达式1) {             

语句体1;   

 }else  if (关系表达式2) {             

语句体2;     }    

…   

 else {             

语句体n+1;     }

执行流程:

(1)首先判断关系表达式1看其结果时false还是true

(2)如果是true就执行语句体1

(3)如果是false就继续判断关系表达式2看其结果是true还是false

(4)如果是true就执行语句体2

(5)如果是false就继续判断关系表达式.....看其结果时true还是false

(6)......

(7)如果没有任何关系表达式为true,就执行语句体n+1

if语句的使用场景:

(1)针对一个表达式时boolean类型的判断

(2)针对一个范围的判断

(3)if语句是可以嵌套使用的

switch语句:

格式:

switch(表达式) {         

 case 值1:             

语句体1;             

break;           

 case 值2:             

语句体2;             

break;             

default:                 

语句体n+1;           

 break;

格式解释 :

switch表示这是switch语句

表达式的取值:byte,short,int,char JDK5以后可以是枚举 JDK7以后可以是String

case后面跟的是要和表达式进行比较的值 语句体部分可以是一条或多条语句 break表示中断,结束的意思,可以结束switch语句 default语句表示所有情况都不匹配的时候,就执行该处的内容,和if语句的else相似。

执行流程:

(1)首先计算出表达式的值

(2)其次,和case依次比较,一旦有对应的值,就会执行相应的语句,在执行过程中,遇到break就会结束

(3)最后,如果所有的case都和表达式的值不匹配,就会执行default语句体部分,然后程序结束掉

注意事项:

(1)case后面只能跟常量,不能是变量,而且,多个case后面的值不能出现相同的

(2)default可以省略,但是不建议,除非判断的值的固定的

(3)break可以省略,但是不建议,否则结果可能不是你想要的

(4)default的位置可以出现在switch的任意位置

(5)switch的结束条件:遇到break或者执行到程序的末尾

if语句和switch的区别:

if语句使用场景:

针对结果是boolean类型的判断

针对一个范围的判断

针对几个常量值的判断

switch语句使用场景:

针对几个常量值的判断

3.循环结构:主要做一些重复的代码

循环语句的组成:

初始化语句:一条或者多条语句,这些语句完成一些初始化操作

判断条件语句:这是一个boolean表达式,这个表达式能决定是否执行循环体

循环体语句:这个部分是循环体语句,也就是我们要多次做的事情

控制条件语句:这个部分在一部分循环体结束后,下一次循环判断条件前执行,通过用于控制循环条件中的变量,使得循环在合适的时候结束

for循环语句格式:

for(初始化语句;判断条件语句;控制条件语句;){

循环体结构;

}

执行流程:

A:执行初始化语句

B:执行判断条件语句,看其结果时truehaisfalse

(1)如果是true,继续执行

(2)如果是false,循环结束

C:执行循环体语句

D:执行控制条件语句

E:回到B继续执行

注意事项:

A:判断条件语句的结果是一个boolean类型

B:循环体语句如果是一条语句,大括号可以省略;如果是多条语句,大括号不能省略。建议永远不要省略。

C:一般来说:有左大括号就没有分号,有分号就没有左大括号

 

转载于:https://www.cnblogs.com/xaioyuer/p/11205458.html

你可能感兴趣的文章
108-PHP类成员protected和private成员属性不能被查看数值
查看>>
css控制height充满浏览器视口
查看>>
Linux 系统目录结构
查看>>
python学习之 - XML
查看>>
css问题小计
查看>>
Laravel学习笔记(三)数据库 数据库迁移
查看>>
ORACLE查看并修改最大连接数
查看>>
box-flex不均分问题
查看>>
Python--GIL 详解
查看>>
Oracle数据导入Mysql中
查看>>
BZOJ-4424 &&CodeForces-19E Fairy DP+dfs (Link-Cut-Tree可A)
查看>>
MongoDB学习笔记——聚合操作之group,distinct,count
查看>>
大道至简读后感(第四章)
查看>>
IDA IDC Tutorials: Additional Auto-Commenting
查看>>
k8s-存储卷1-十二
查看>>
在Android中Intent的概念及应用(二)——Intent过滤器相关选项
查看>>
第十六章 多态性(一)
查看>>
INSERT IGNORE INTO / REPLACE INTO
查看>>
Python数据类型-布尔/数字/字符串/列表/元组/字典/集合
查看>>
【刷题】SPOJ 705 SUBST1 - New Distinct Substrings
查看>>