Java 基础语法

2021-10-08 14:54:59 浏览数 (1)

注释、标识符、关键字

注释

注释并不会被执行,是写给我们写代码的人看的。书写注释是一个非常好的习惯

标识符

标识符是赋给类、方法或変量等取的名字。一个标识符可以是字母、数字、下划线、美元符号的任意顺序组合。但不能以一个数字开始;并且也不能影java中的关键字。

标识符使用规范

  1. 当取名为多个单词的组合名字时,要采用驼峰命名法,比如: userName
  2. 类名首字母大写
  3. 変量名和方法名首字母小写
  4. 常量所以字母都大写
  5. 包名小写
  6. 工程名首字母大写
  7. java使用 Unicode标准字符集, Unicode字符集覆盖了大部分国家的“字母表”的字母;也就是说java类名変量名等可以是中文,因为中文也是 Unicode字符集中的字符;但不建议开发中用中文标识符。

Java字符集

java使用 Unicode标准字符集,最多可以识别655356个字符, Unicode字符集的前128个字符是 ASCII码表,ASCI部分字符对照表如下图所示:

我们知道计算机是只识别二进制0101,而我们平时书写代码时是写的abcd这种字符,为了让我们写的abcd这种字符转成对应的二进制,就需要一套转换的标准,也即是 Unicode字符集。

如:a->01100001,这个二进制我们可以用10进制来表示。即a->97。

关键字

在java中,有些单词具有专门的意义和用途,已经被官方所使用,不能当作一般的标识符使用,这些标识符称为保留关键字( reserved word)。

保留词(无含义但不能使用): goto, const

数据类型

Java是一种强类型的语言,所以在java中每个变量都需要有自己的数据类型(比如整数、小数等等),java的编译器会对你所赋值的数据进行相应的类型相容性检查。

举个例子:inti=5.5;此时就会报编译错误,因为int类型只能存整数,但是5.5是个小数,不能存入int类型的变量中。

整数类型

Java的整型字面常量表示有四种

  1. 十进制整数,如:1,3,12,-100
  2. 八进制整数,要以0开头,如:012->1×81 2×80,输出打印结果为10
  3. 十六进制,以0x或0X开头,如:0x12->1×161 2×160,输出打印结果为18
  4. 二进制,以0b或则0B开头,如:0b110->23 22 0 0输出打印结果为12

不同数据类型在使用时一定不能超过其范围,否则报错

例子: byte b=128;直接编译报错,超过了byte最大范围127 short s1=30000;这里的30000实际上是int型,只是没有超出 short的存储范围 short s2=10

对于long类型字面常量建议使用L或者l结尾

例子: long=2555555555你会发现这里编译报错,因为2555555555是int型,但是明显此数字的值已经超出了int的范围,所以报错。 long=2555555L;这样子2555555就真的是一个long类型了。

浮点数型

Java浮点型的常量描述有两种表现形式

浮点数类型的默认字面常量是 double类型,所以我们在定乂 float类型时一般建议在其未尾加上F或者f,对于 doublet你也可加上D或者d来结尾

float f=12.7f:

字符类型

  1. 字节数: 2字节;
  2. 字面常量值: 单引号 单个字符,如’a’
  3. 取值范围: 我们在前面说到了java采用的是 Unicode字符集,所以也即是说char类型表示的就是 Unicode字符集中的所有字符。也即0~65535之间的所有编码
  4. 变量定义 char ch1=‘A’ char=98;
  5. 转义字符 在Java中,允许使用反斜杠”把其后的字符转成别的含义 例如:n>换行,t制表符,等同tab功能,”字符意义上的双引号,’字符意义上的单引号
  6. 字符串 String: 表示的是一串字符,定义时需要使用双引号”,它不是基本数据类型之一。

数据类型转换

在java程序中的每个数据都有自己的数据类型,在对这些数据进行操作时,经常会涉及到不同数据类型之间的转换。

数据类型转换按类型又分为两种:

  1. 自动转换(隐式转换)
  2. 强制转换(显示转换)

数据类型转换之前,先得了解一下,数据类型的优先级(下列从左往右优先级依次增大)

byte, short, char> int> long >float >double

自动转换

自动转换:也称隐式类型转换,是指不需要书写代码,由系统自动完成的类型转换

  1. 数据类型的优先级 byte, short, char >int> long> float> double 例子: int x=10; double y=1.2; double z=x y://其中x会自动转成 double 但是byte, short,char这三者不管怎么组合运算得到的都是int类型数据
  2. String类型可与任何数据类型进行 的运算,只不过此时其他类型都先转成字符串,然后进行 的操作,这里操作是进行的字符串的拼接工作 String str=“28”;int x=28; String s=str x;//s=“2828”,其中x会先被转成字符28
  3. 布尔型和其它基本数据类型之间不能相互转换
  4. 复合赋值操作也会进行自动转换; 例子1: short s=10; s=s 1;//此处会报编译错误,因为s 1是int类型 例子2: short s1=10; //编译通过,此时s1 1是得到了个int,但是此时为复合赋值运算,java //编译器会多做一步,将得到的int转成 short s1 =1;

强制转换

强制转换:也称显式类型转换,是指必须书写代码オ能完成的类型转换,一般来说当我们想要将个“大范围”类型数据转成“小范围”类型时,オ会用到强转。

例子: short s=10; short x=( short)(s 1); //强制将int型转成 short型

强制转换的时候也不是可以实现任意转换的,如果使用不当,中间可能会出现一些问题

  1. 转换前的数据类型与转换后的数据类型兼容(在后面所学内容类的向下塑型体现的比较明显) 例子: String str=“1”;int x=(int)str; //编译报错
  2. 浮点数强转整型会造成精度丢失 例子: double d=12.4;int i=(int)d; //i=12
  3. “大范围”转“小范围”可能会造成数据溢出 例子:int x=130; byte b=(byte)x; //b=-126

变量、常量、作用域

变量

什么是变量

  • 编程的本质就是对内存中数据的访问和修改。程序所用到的数据都会保存在内存中,程序员需要一种机制来访问或修改内存中的数据,而这种机制就是变量

变量的本质

  • 从上面的说法我们可以知道变量的本质就是一个“可操作的存储空间”,空间的位置不变但是存储在空间中的值可以改变,我们需要通过变量名来实现对该存储区域的访问,继而达到操作存储空间中的值的目的。

形象的理解: 变量相当于有名字的容器,该容器用于装载不同类型的数据。

变量的构成元素

变量作为程序中最基本存储单元,其主要由变量名,变量的类型,变量值,变量的作用域这几部分来组成。

变量的声明

格式为:type indentifier [=value] [, indentifier [=value] …]; 数据类型 变量名 [=初始值] [, 变量名 [=初始值]。。。],[ ]中的内容可有可无

示例:

代码语言:javascript复制
int i=5;(声明一个int类型的变量,变量名为i,初始化赋值为5)
double x:
int a,b;
int d=5,f=18;

注:当变量用于计算时,一定要先进行初始化斌值,否则编译报错,即inti=5这种。

注意事项

  • 每个变量都有类型,类型可以是基本类型,也可以是引用类型。
  • 变量名必须是合法的标识符。
  • 变量声明是一条完整的语句,因此每一个声明都必须以分号结束

变量作用域

  • 类变量
  • 实例变量
  • 局部变量
代码语言:javascript复制
public class Main {
   

    static int allClicks = 0; //类变量

    String str = "hello world!";//实例变量

    public static void main(String[] args) {
   
        int i = 0;//局部变量
    }
}

常量

常量( Constant):初始化( initialize)后不能再改变值!不会变动的值。

所谓常量可以理解成一种特殊的变量,它的值被设定后,在程序运行过程中不允许被改变

例子:

代码语言:javascript复制
final 常量名=值;
final double PI=3. 14;

常量名一般使用大写字符

变量的命名规范

  • 所有变量、方法、类名:见名知意
  • 类成员变量:首字母小写和驼峰原则: monthSalary
  • 局部变量:首字母小写和驼峰原则
  • 常量:大写字母和下划线: MAX_VALUE
  • 类名:首字母大写和驼峰原则:Man, GoodMan
  • 方法名:首字母小写和驼峰原则:run(), runRun()

运算符

Java语言支持如下运算符

  • 算术运算符: ,-,*,/,%,(二元) ,–(一元)
  • 赋值运算符:=
  • 关系运算符:>,<,>=,<=,==,!= instanceof
  • 逻辑运算符:&&,||, !
  • 位运算符:&,|,^,~,>>,<<,>>>(了解!!!)
  • 条件运算符:?:
  • 扩展赋值运算符: =,-=,*=,/=

,–属于一元运算符: 计算时只需要一个操作数,操作数的值自增或自减1,其该类运算符在操作数上可前置使用,也可后置使用,结果差异很大,如下所示

代码语言:javascript复制
**运算符前置:**int i=10;int j=  i; // j=11, i=11;前  :     i这整个表达式 1,本身也 1

**运算符后置:**int x=10;int y=x  ;//y=10, x=11;后  :  x  整个表达式不变,x本身 1

--操作的前置和后置也是同理

位运算

代码语言:javascript复制
 /* A = 0011 1100 B = 0000 1101 -------------------------- A&B = 0000 1100 A|B = 0011 1101 A^B = 0011 0001 ~B = 1111 0010 << *2 >> /2 */

字符串连接符 注意事项

代码语言:javascript复制
int a=10;
int b=20;
System.out.println("" a b);//输出1020
System.out.println(a b "");//输出30

条件运算符

代码语言:javascript复制
//x ? y : z
//if x==true 结果为y,否则结果为z

运算符优先级问题

优先级指java语言计算运算符的顺序。

下图列出了java中常用(未全部列出)的一些运算符的优先级关系,其中1表示优先级最高,11为最低。

总结优先级:算术运算符 > 比较运算符 > 逻辑运算符 > 赋值运算符

包机制

JavaDoc

javadoc命令是用来生成自己API文档的

参数信息

  • @ author作者名
  • @ version版本号
  • @ since指明需要最早使用的jdk版本
  • @ param参数名
  • @ return返回值情况
  • @ throws异常抛出情况
代码语言:javascript复制
/** * @author yt * @version 1.0 * @since 11 */
public class Main {
   
    String name;
    /** * * @param name * @return * @throws Exception */
    public String test(String name) throws Exception{
   
        return name;
    }
}

cmd javadoc命令

代码语言:javascript复制
javadoc -encoding UTF-8 -charset UTF-8 文件名

turn返回值情况

  • @ throws异常抛出情况
代码语言:javascript复制
/** * @author yt * @version 1.0 * @since 11 */
public class Main {
   
    String name;
    /** * * @param name * @return * @throws Exception */
    public String test(String name) throws Exception{
   
        return name;
    }
}

cmd javadoc命令

代码语言:javascript复制
javadoc -encoding UTF-8 -charset UTF-8 文件名

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/114436.html原文链接:https://javaforall.cn

0 人点赞