JAVA基本语法

mac2026-01-03  9

1.编码规范

2.数据类型

3.运算符

 

一、编码规范

1.注释

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

       注释分类:

 1、单行注释

 格式://注释文字

 2、多行注释

 格式:/* 注释文字 */

 3、文档注释

 格式:/** 注释文字 */

       注释作用

       1、对程序进行解释说明:要求代码中,有30%行数都是用来写注释的

       2、对程序的思路进行描述

       3、对程序进行调试:通过注释的方式,快速定位出现错误的代码位置

2.关键字

       关键字概述

1、关键字是被Java语言赋予特殊含义,具有专门用途的单词,比如之前接触的class,public,static,void均为Java已经预设好的。

2、你可以先把Java关键字理解为“命令”!

       关键字特点

1、组成关键字的字母全部小写。

2、常用的代码编辑器,针对关键字有特殊的颜色标记,非常直观,所以我们不需要去死记硬背,在今后的学习中重要的关键字也会不断的出来。

       Java中的所有关键字展示

       

       

       :有两个保留字:goto、const,在当前版本不使用,但是以后是否使用未知。

3.标识符

       什么是标识符?

       其实在Java程序中,除了关键字以外基本上都是标识符了。

       其实标识符就是名称的意思,所有的名称都统称为标识符。

       Java中经常要定义类、方法、变量(后面会学习到),在定义他们时总要给它们起名字,这些名字就是标识符。我们要学习的就是标识符的规范。凡是可以自己起名字的地方都叫做标识符。

       组成元素

1、英文字符: a-zA-Z

2、数字: 0-9

3、符号: _与$

标识符规范

1、数字不能开头

2、不可以使用关键字

3、严格区分大小写,不限制长度起名时,尽量达到见名知意

4、类名:首字母大写,其他字母小写,若有多个单词,每个单词的首字母大写(后面学习)

5、方法名:第一个单词字母小写,后面的单词首字母大写,其他字母小写

6、变量:一个单词首字母小写。多个单词,从第二个单词开始每个单词首字母大写(驼峰形式)非强制要求,约定俗称的规则

4.常量

       常量就是不变的数据量,例如100就是常量,任何数据量都有其类型,那么100这个常量是什么类型呢?回忆一下基本类型中有四类,分别是整数、小数(浮点数)、字符、布尔。

      

5.变量

        变量:在程序中可以变化的量称为变量(常量是固定不变的量)

       Java中要求一个变量每次只能保存一个数据,必须要明确保存的数据类型。

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

       例如:int  a  = 100;

       其中int是数据类型,指定了变量只能存储整数,而且指定了存储范围为-2147483648~2147483648。

       其中a表示变量名,变量名是标识符,这说明只要是合法的标识符都可以用来做变量名。在程序中可以通过变量名来操作变量。

       其中“=100”是给变量赋值,即向a变量中写入100。

       注意事项

       变量定义后可以不赋值,使用时再赋值。不赋值不能使用

       变量不能重复定义,并且赋值时类型得匹配。

       变量使用时有作用域的限制。

二、数据类型

1.数据类型分类

       在生活中数据是有类型的,例如人的姓名是字符串类型,人的年龄是正整数类型。在Java中数据也是有类型的。

       Java中数据的类型:

       

2.基本数据类型

       是Java语言中内置的类型,分别是整数类型、浮点类型、字符类型、布尔类型。这四类基本类型是最简单、最基础的类型。

     (1)整数类型

       十进制表示方式:正常数字   如 13、25等

       二进制表示方式:以0b(0B)开头    如0b1011 、0B1001

       八进制表示方式:以0开头   如01、07、0721

       十六进制表示方式:以0x(0X)开头   数字以0-9及A-F组成  如0x23A2、0xa、0x10

     (2)浮点数类型

       如1.0、-3.15、3.168等

     (3)布尔类型

       true、false

     (4)字符类型

       如'a','A', '0', '家'

       字符必须使用’’ 包裹,并且其中只能且仅能包含一个字符。

       基本数据类型占用大小和表示范围

四类

八种

字节数

数据表示范围

整型

(精确)

 

byte

1

-128~127

short

2

-32768~32767

int(默认)

4

-2147483648~2147483647

long

8

-263~263-1

浮点型

(不精确)

float

4

-3.403E38~3.403E38

double(默认)

8

-1.798E308~1.798E308

字符型

char

2

表示一个字符,如('a','A','0','家')

布尔型

boolean

1

只有两个值true与false

 

       数据类型转换

       不同类型的变量是否可以在一起运算呢?答案是可以的,但要先进行类型转换再运算。下面我们来学习一下类型转换。

       (1)自动类型转换

       表示范围小的数据类型(如byte)可以直接转换成范围大的数据类型(如int),这种方式称为自动类型转换。

       格式:范围大的数据类型 变量 = 范围小的数据类型值;

      (2)强制类型转换

       表示范围大的数据类型(如int)不可以转换成范围小的数据类型(如byte),但可以强制转,这种方式称为强制类型转换。

       格式:范围小的数据类型  变量 = (范围小的数据类型) 范围大的数据类型值;

       转换规律:

       各种数据类型按照数据范围从小到大依次列出:范围小的类型向范围大的类型提升:byte<short=char‐‐>int‐‐>long‐‐>float‐‐>double

 byte、short、char 运算时直接提升为int,同样的道理,当一个int 类型变量和一个double 变量运算时, int 类型将会自动提升为double 类型进行运算。

       注:

       浮点转成整数,直接去掉小数点,可能造成数据损失精度。

       int 强制转成byte砍掉3个字节,可能造成数据丢失(丢失精度)。

三、运算符

1.概述

      运算符:对常量和变量进行操作的符号称为运算符

      表达式:用运算符把常量或者变量连接起来符号java语法的式子就可以称为表达式。不同运算符连接的式子体现的是不同类型的表达式。

2.算数运算符

3.赋值运算符

4.关系运算符

5.逻辑运算符

       && 短路与

       特点:符号左边是false,右边不运算

       || 短路或

       特点: 符号左边是true,右边不运算

       结论:实际开发中都是使用短路与&&和短路或||,因为效率更高

6.三元运算符

       格式:数据类型 变量名 = 布尔类型表达式?值1:值2

       计算方式: 布尔类型表达式值是true时,三元运算符整体值为值1,赋值给变量。

       布尔类型表达式值是false时,三元运算符整体值为值2,赋值给变量。

7.位运算符

       任何信息在计算机中都是以二进制的形式保存的,”&”、“|”、“^”除了可以作为逻辑运算符也可以作为位运算符。位运算是直接对二进制进行运算。他们对两个操作数中的每一个二进制位都进行运算。例如int是由32个二进制数组成,因此使用位运算符可以对整数值的二进制数进行运算。按位操作符用来操作整数基本数据类型中的单个比特(bit),就是二进制,按位操作符会对两个参数中对应的位(bit)执行布尔运算,最终生成一个结果。按位操作符来源于C语言面向底层的操作,Java设计的初衷是嵌入式电视机机顶盒,所以面向底层的操作也保留了下来。

       1.&运算

       & 参加运算的两位数都为1,&运算符结果才为1,否则就为0。

       例如:6&3

00000000

00000000

00000000

00000110

6

00000000

00000000

00000000

00000011

3

00000000

00000000

00000000

00000010

&  =2

       2.|运算

       | 参与运算的两位都为0,|运算的结果才为0,否则就为1。

00000000

00000000

00000000

00000110

6

00000000

00000000

00000000

00000011

3

00000000

00000000

00000000

00000111

|  =7

       3.^运算

       ^只有参加运算的两位不同,^运算的结果才为1,否则就为0。

00000000

00000000

00000000

00000110

6

00000000

00000000

00000000

00000011

3

00000000

00000000

00000000

00000101

^  =5

       4.~运算

       就是取反,二进制只有1和0,取反就是如果为1,取反就是0,如果是0,取反就是1。

 

0000-0000

0000-0000

0000-0000

0000-0110

6

1111-1111

1111-1111

1111-1111

1111-1001

取反 -7

       结论:当参与取反的数值是正数时,把对应的值加上负号,再-1;

       当参与取反的数值是负数时,把对应的值加上负号,再-1;

       负数的表现形式就是对应的正数取反,再加1。负数的最高位肯定是1。

8.移位运算符

                    

       例如

       (1)左移 (算术移位)

       3<< 2 是如何在计算机里是实现的?

       首先将3转换为2进制,

00000000

00000000

00000000

00000011

3 的二进制

00000000

00000000

00000000

000011

左移2位,砍掉高位

0000 0000

0000 0000

0000 0000

0000 1100

低位补0

       结果是12,所以3<<2 =12;

       结论:左移就相当于乘以2的位移个数次幂.

       (2)右移

       6>>2

00000000

00000000

00000000

00000110

6的二进制

000000

00000000

00000000

00000001

右移10被砍掉

00000000

00000000

00000000

00000001

高位补0

       结果是1,所以6>>2 =1; 

       结论:一个数往左移越移越大,往右边移越来越小.

       推论

       3<<2=12;  3<<1=6 ;  3<<3=24;

       3*4=12 ;  3*2=6;    3*8=24;

       3*22=12;   3*21=6    3*23 =24;

       结论往左移几位就是乘以2的几次幂。

       右移规律

       6>>2=1  ;6>>1=3 ;

       6/4=1   ; 6/2=3 ;

       右移两位就是除以 2的2次方,右移一位就是除以 2的一次方。

       总结 :>> 是除以2的移动位数次幂

                   << 是乘以2的移动位数次幂

       用处:最快的运算是位运算。

     (3)无符号右移 (逻辑移位)

       通过演示发现右移时高位就空了出来, >> 右移时高位补什么要按照原有 数据的最高位来决定。

       1111-1111 1111-1111 1111-1111 1111-1010    -6>>2

       1111-1111 1111-1111 1111-1111 1111-0010    

        最高位补什么要看原有最高位是什么

       那么使用>> 后原来是最高位1 的那么空出来的最高位还是1 的,是0的还是0。

       如果使用>>> 无论最高位是0还是1 空余最高位都拿0 补,这就是无符号右移。

       1111-1111 1111-1111 1111-1111 1111-1010    -6>>>2

       001111-1111 1111-1111 1111-1111 1111-10    

       结果是;1073741822

9.交换两个变量的值-扩展内容

       方法一

public class Test{ public static void main(String[] args){ int a = 1; int b = 2; int temp = a; a = b; b = temp; System.out.println(a); System.out.println(b); } }

       方法二

public class Test{ public static void main(String[] args){ int a = 1; int b = 2; a = a+b; b = a-b; a = a-b; System.out.println(a); System.out.println(b); } }

       方法三

public class Test{ public static void main(String[] args){ int a = 1; int b = 2; b = a+b - (a=b); System.out.println(a); System.out.println(b); } }

       方法四

//要交换的两个数不能相等 public class Test{ public static void main(String[] args){ int a = 1; int b = 2; a = a^b; b = a^b; a = a^b; System.out.println(a); System.out.println(b); } }

 

最新回复(0)