Java基础 - 2 - Java基础语法

一. 注释

        注释是卸载程序中对代码解释说明的文字,方便自己和其他人查看,以便理解程序

1.1 注释的分类

1.1.1 单行注释

// 注释内容 只能写一行

1.1.2 多行注释

/* 
    注释内容1
    注释内容2
*/

1.1.3 文档注释

        文档注释的内容可以提取到一个程序说明文档中去

/**
    注释内容1
    注释内容2
*/

1.2 注释的特点

        注释不影响程序的执行(Javac命令进行编译后的.class文件不包含注释)

1.3 注释的快捷键

快捷键进行注释功能效果
Ctrl+/单行注释(对当前行进行注释)  再按恢复
Ctrl+Shift+/对选中的代码进行多行注释   再按恢复

二. 字面量

        字面量就是数据在程序中的书写格式

常用数据生活中的写法程序中的写法说明
整数666    -888666    -888写法一致
小数13.14   -5.2013.14   -5.20写法一致
字符A、0、你‘A’、‘0’、‘你’

程序中必须使用单引号

有且仅能一个字符(不能不写字符)

字符串你好星期六"你好星期六"程序中必须使用双引号,内容可有可无
布尔值真、假True、False只有两个值True真、False假
空值null一个特殊的值
//整数
System.out.println(100);

//小数
System.out.println(99.5);

//字符 必须用单引号围起来,必须只有一个字符
System.out.println('a');
System.out.println('中');
System.out.println('0');
System.out.println(' '); //空字符
// System.out.println('');  //错误写法

//特殊字符    \n 换行   \t tab缩进
System.out.println('\n');   //println本身带有换行属性,加上\n要再换一行
System.out.println('\t');

//字符串 必须用双引号围起来,内容任意
System.out.println("我爱你中国");
System.out.println("");
System.out.println("   ");
System.out.println("6");

//布尔值 只有true false
System.out.println(true);
System.out.println(false);

三. 变量

        变量是用来存储数据的,本质是内存中的一块区域(可以理解成一个装数据的盒子)

3.1 变量的定义格式

                数据类型 变量名称 = 数据;

3.2 使用变量的好处

                便于扩展和维护,编写的代码更加灵活,管理代码更方便

3.3 变量的特点

                变量中的数据是可以被替换的

3.4 使用变量的注意事项

(1)变量要先声明才能使用

(2)变量是什么类型,就应该用来装什么类型的数据,否则报错

(3)变量是从定义开始到“}”截至的范围内有效,且同一个范围内,定义的多个变量,他们的名称不能一样 

(4)变量定义的时候可以不赋初始值,但在使用的时候,变量必须有值,不然报错。

四. 关键字 标识符

4.1 关键字

        是Java语言自己用到的有特定含义的一些词    eg:public、class、int、double

        注:关键字不能用来作为类名、变量名,否则会报错

4.2 标识符

        写程序的时候会起一些名字,比如类名、变量名等等都是标识符

4.2.1 标识符的要求

        基本组成:由数据、字母、下划线(_)和美元符($)等组成

        强制要求:不能以数字开头、不能用关键字做名字、要区分大小写

        建议规范:

                变量名称:满足标识符规范,同时建议用英文、有意义、首字母小写,满足驼峰模式

                        eg:int studyNumber = 61;

                类名称:满足标识符规范,建议全英文、有意义、首字母大写,满足驼峰模式

                        eg:HelloWorld、Student

五. 变量详解

5.1 数据(数字)的存储

        数据在计算机中的存储采用二进制(使用0和1,按照逢2进1的方式表示数据来存储)

5.1.1 十进制和二进制的相互转换

(1)十进制转换成二进制        

        采用除二取余法(eg:6=110 、13=1101)

(2)二进制转换成十进制

        0011(0*2^3+0*2^2+1*2^1+1*2^0=3)   1101(1*2^3+1*2^2+0*2^1+1*2^0=13)

5.1.2 八进制和十六进制

(1)二进制转八进制

(2)二进制转十六进制

Java程序中支持书写二进制、八进制、十六进制的数据,分别需要以0B或0b、0、0X或0x开头

5.1.3 数据存储单元

        计算机中表示数据的最小单元:一个字节(byte,简称B,是使用8个二进制位组成的),字节中的每个二进制位就称为位(bit,简称b),1B = 8b

        在字节(B)的基础上发展出了KB、MB、GB、TB……这些数据单位

                1B=8b  1KB=1024B  1MB=1024KB  1GB=1024MB  1TB=1024GB

5.2 字符的存储

        字符在计算机中存的是ASCII码表中对应的数字的二进制形式 (eg:'A'=65 'a'=97 '0'=48)

        ASCII编码表:美国信息交换标准编码,规定了现代英语、数字字符和其他西欧字符对应的数字编号。

5.3 图片数据-彩色图的存储

        图片就是无数个像素点组成的,每个像素点的数据:用0-255*255*255表示其颜色

5.4 声音数据的存储

六. 数据类型

        数据类型分为基本数据类型和引用数据类型

基本数据类型:4大类8种

数据类型内存占用(字节数)数据范围
整形byte1-128~127
short2-32768~32767
int(默认)4-2147483648~2147483647(10位数)
long8-9223372036854775808~9223372036854775807
浮点型(小数)float41.401298 E -45 到 3.4028235 E +38(E 科学计数法表示 3.4028235*10^38)
double(默认)84.9000000 E -234 到 1.797693 E +308
字符型char20-65535
布尔型boolean1true,false
// 随意定义一个整型字面量默认是int类型,12345678910虽没有超过则long范围,但是超过了本身int类型的范围
// 如果希望随便写一个整型字面量默认是long型,需要在后面加上L/l
long x = 12345678910; 错误
long y = 12345678910L; 


// 随意定义一个小数字面量默认是double类型,如果希望小数是float,后面加上F/f
float f = 3.14; //错误
float t = 3.14F;

// 字符型
char ch1 = 'a';
char ch2 = '中';
char ch3 = ''; //错误(字符字面量必须只有一个字符)

// 布尔型
boolean flag1 = true;
boolean flag2 = false;

//引用数据类型
//String 字符串类型,定义的变量可以用来记住字符串数据
String name = "张三";

七. 类型转换

7.1 类型转换的原因

        存在不同类型的变量赋值给其他类型的变量

7.2 类型转换的种类

7.2.1 自动类型转换

        类型范围小的变量可以直接赋值给类型范围大的变量

        自动类型转换的形式:byte -> short -> int -> long -> float -> double(char -> int)

byte a = 127;
int b = a;
System.out.println(a);   //a=127
System.out.println(b);   //b=127   

7.2.2 表达式的自动类型转换

        在表达式中,小范围类型的变量,会自动换成表达式中较大范围的类型,再参与运算。

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

注:

        (1)表达式的最终结果类型由表达式中的最高类型决定

        (2)表达式中,byte、short、char是直接转换成int类型参与运算的

byte i = 10;
short j = 20;
short a = i + j; //报错,因为在表达式中,byte、short、char是直接转换成int类型参与运算的
int b = i + j; //正确

7.2.3 强制类型转换

        类型范围大的数据或变量,直接赋值给类型范围小的变量,会报错,强制类型转换是强行将类型范围大的变量、数据赋值给类型范围小的变量

        数据类型 变量2 = (数据类型)变量1、数据

注:

        (1)如果类型范围大的数据或变量,在类型范围小的规定范围之内(如int a=20,如果强制转换成byte型,20符合byte的类型范围),则可以成功转换;如果不符合,强制类型转换可能造成数据(丢失)溢出

        (2)浮点型强制转换成整型,直接丢掉小数部分,保留整数部分返回

八. 运算符

8.1 基本的算术运算符

        +(加)、-(减)、*(乘)、/(除,在Java中两个整数相除结果还是整数)、%(取余,获得两个数据做除法的余数)

System.out.println(5 / 2);  //2
System.out.println(5.0 / 2);  //2.5

int i = 5;
int j = 2;
System.out.println(i / j);  //2
System.out.println(1.0 * i / j);  //2.5

注:"+"符号在Java中与字符串运算的时候,可以用作连接符,结果依然是个字符串(eg:"abc" +5 -> "abc5")

int a = 5;
System.out.println("abc" + a); //"abc5"
System.out.println(a + 5); //10
System.out.println("abcd" + a + 'a'); //"abcd5a"
System.out.println('a' + a + 'abcd'); //"102abcd"

8.2 自增自减运算符(只能操作变量)

        自增++:放在某个变量前面或者后面,对变量自身的值加1

        自减--:放在某个变量前面或者后面,对变量自身的值减1

 ++、--如果不是单独使用(如在表达式中、或者同时有其他操作),放在变量前后会存在明显区别:

        放在变量的前面,先对变量进行+1,-1,再拿变量的值进行运算

        放在变量的后面,先对变量的值进行运算,再对变量的值进行+1,-1

int a = 5;
int b = ++a;
System.out.println(a); //a=6
System.out.println(b); //b=6

int c = 5;
int d = c++;
System.out.println(c); //c=6
System.out.println(d); //d=5

8.3 赋值运算符

8.3.1 基本赋值运算符

        '=' 从右往左看      eg:int a=10;

8.3.2 扩展赋值运算符

符号用法作用底层代码形式
+=a+=b加后赋值a=(a的类型)(a+b)

-=

a-=b减后赋值a=(a的类型)(a-b)
*=a*=b乘后赋值a=(a的类型)(a*b)
/=a/=b除后赋值a=(a的类型)(a/b)
%=a%=b取余后赋值a=(a的类型)(a%b)

8.4 关系运算符

>(大于) >=(大于或者等于) <(小于) <=(小于或者等于) ==(等于) !=(不等于)

成立返回true,不成立返回false

8.5 逻辑运算符

&(逻辑与):2>1 & 3>2   多个条件必须都是true结果才是true;有一个是false结果就是false

|(逻辑或):2>1 | 3<5  多个条件中只要有一个是true结果就是true

!(逻辑非):!(2>1)  就是取反,! true == false,! false = true

^(逻辑异或):2>1 ^ 3>1  前后条件的结果相同返回false,前后条件结果不同返回true

&&(短路与):判断结果和&一样,过程不同:左边为false,右边则不执行

||(短路或):判断结果和|一样,过程不同:左边为true,右边则不执行

8.6 三元运算符

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

        执行流程:首先计算关系表达式的值,如果值为true,返回值1,如果为false,返回值2

8.7 运算符优先级

注:&&优先级高于||

九. API

        API(Application Programming Interfere:应用程序编程接口):Java写好的程序,可以直接拿来调用

        Java为自己写好的程序提供了相应的程序使用说明书(API文档)

eg:Java中常用的API,如使用Scanner接受用户键盘输入的数据

        1.导包:告诉程序去JDK的哪个包中找扫描器技术

        2.抄代码:代表得到键盘扫描器对象(东西)

        3.抄代码:等待接收用户输入数据

注:

        System、String在JDK中的java.lang包下,lang包不需要我们导包,是默认的包

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值