Java基础语法浅析

本文介绍了Java编程的基础知识,包括标识符的命名规则,数据类型的分类及其默认值,二进制、八进制、十六进制的表示方式,浮点数舍入误差问题,以及类型转换的注意事项。此外,还讲解了变量与常量的定义、运算符的使用,以及String与基本类型间的转换方法。对于初学者,理解这些概念是掌握Java编程的关键。
摘要由CSDN通过智能技术生成

1.标识符

标识符应该以字符字母(az,AZ)、美元符号($)、下划线(_)开头。

后面的字符可以是字符字母(az,AZ)、美元符号($)、下划线(_)、数字的任意组合

        String name;
        String Name;
        String _name;
        String $name;
        String 1Name;   //错误的格式

注意事项:

  1. 标识符区分大小写;
  2. 不能用Java中的关键字作为标识符;

2.数据类型

整体分为两大类型,基础类型和引用类型
基础类型包括:byte、short、int、long、char、float、double、boolean
引用类型包括:类、接口、数组
图示如下:
在这里插入图片描述

需要注意的点:

  1. 整数默认类型为int,浮点数默认类型为double;
  2. long类型的变量初始化时必须在数值后面加上大写L或者小写l表示这是一个long类型数据,但最好使用大写字母表示;
  3. float类型的变量初始化时必须在数值后面加上大写F或者小写f表示这是一个float类型数据,但最好使用大写字母表示;
  4. double类型的变量初始化时可以在数值后面加上大写D或者小写d表示这是一个double类型数据,但最好使用大写字母表示;

3.二进制、八进制、十六进制表示

进制数值之前的前缀每一位的数值范围示例
二进制0B/0b0或者10b1011(对应十进制的11)
八进制00~7074(对应十进制的60)
十六进制0X/0x0~15,大于9用a~f或者A~F表示0xff(对应十进制的255)

4.浮点数的舍入误差问题(初步了解)

浮点数存在四舍五入的情况,所以存在舍入误差问题,具体见下面的例子:

    float price = 35023509275092750f;
    float price2 = price + 1;
    System.out.println(price == price2);	//true

输出结果为真,但是两个变量的数值应该不相同,这是因为浮点数进行了四舍五入,导致数值相同


5.类型转换

Java中的类型转换有两种,隐式类型转换和显式类型转换
隐式类型转换由编译器自动转换,适用于将低精度数据转换为高精度数据,如int转换为float等;
显式类型转换需要手动转换,在需要转换的数据前加一个括号,括号内指定要转换的类型,适用于将高精度数据转换为低精度数据,如double转换为int;
数据精度从低到高为:
byte < short < int < long < float < double

示例如下:

int num = 12;
double num2 = num;			//12.0:隐式类型转换
int num3 = (int)num2;		//12:显式类型转换

需要注意的点

  1. 类型转换可能会出现精度丢失,比如将float型数据转换为int型数据,就会丢失小数点后面的数值;
  2. 不同类型之间的转换可能会存在数据溢出的问题,比如将128赋值给byte型数据,byte只有一个字节大小,表示的范围是-128~127,所以会溢出,最终的转换结果为-128;
  3. char类型本身也是一种数值类型,尽管表现为字符形式,但是char类型可以隐式转换为int、long、float、double;

6.变量和常量

a.变量

a-1.定义变量
类型名 变量名 = 初始值;
int num = 1024;
a-2.变量的类型

变量分为三种:局部变量、实例变量(成员变量)、类变量(静态变量)
局部变量存在于块内,出了块这个作用域就会被栈回收,生命周期随作用域;
实例变量是类中的成员变量,当类实例化一个对象时,实例变量被创建,当类对象销毁时,实例变量也被回收,生命周期随实例化的类对象;
类变量是用static关键字修饰的类成员变量,被这个类实例化后的多个对象共享,随着类的加载而创建,随着类的消失而消失。

a-3.变量的命名规范

驼峰原则:每个单词的首字母大写

  1. 类成员变量和局部变量:首字母小写和驼峰原则
    如:String stuNo;
  2. 常量:大写字母和下划线
    如:final int MAX_VALUE = 1024;
  3. 类名:首字母大写和驼峰原则
    如:public class StudentClass{}
  4. 方法名:首字母小写和驼峰原则
    如:public void doTask(){}

b.常量

在定义变量时用final关键字修饰就会变为常量,常量的值不能修改

示例:

final int num = 1024;
num = 500;	//error

7.运算符

运算符类型常见的运算符
算术运算符+、 -、 *、 / 、%、 ++(自增) 、--(自减)
赋值运算符=
关系运算符> 、 < 、 ==、 !=、>=、<=
逻辑运算符&&(与)、||(或)、!(非)
位运算符&(按位与)、|(按位或)、^(异或)、~(取反)、<<(左移)、>>(右移)
条件运算符?:(三目运算符)
扩展赋值运算符+=、 -=、 *=、 /= 、%=

7.1.前置++和后置++的区别

前置++是将++放在了变量的前面,是一种先加1后赋值的操作;
后置++是将++放在了变量的后面,是一种先赋值后+1的操作。
两种运算最后产生的结构都是让变量的值+1。
同理前置–和后置–也是如此;

7.2.三目运算符

条件X ?a : b;
条件X为true执行a,为false执行b

8.String和基本类型之间的转换

8.1 基本类型转String

基本数据类型+"" 就可以将基本类型转为String 
double num = 10;
String str = num + "";

8.2 String类型转基本类型

使用基本类型对应的包装类进行转换,但是字符串的格式不正确会抛出异常
示例:

String str = "65";
int num = Integer.parseInt(str);
double num2 = Double.parseDouble(str);
float num3 = Float.parseFloat(str);
//String str2 = "hello";
//error
//int num4 = Integer.parseInt(str2);

9.接收控制台输入和输出

9.1 输入

Scanner类是一个专门用来进行输入的类,类似于C++中的cin
a.使用之前需要先定义一个Scanner对象,具体语句如下:

	//实例化对象
	Scanner scanner = new Scanner(System.in);	

b.定义好对象之后使用对象的next或者nextLine方法接收数据并将其赋值给变量,示例如下:

	//获取输入并存储到input中
	String input = scanner.next();

c.使用结束之后关闭流对象

	scanner.close();
常见的Scanner成员函数
函数名函数功能
next获取字符串输入,遇见回车和空格结束
hasNext判断是否存在下一个字符串输入,存在返回true,否则返回false
nextLine获取字符串输入,遇见回车结束
hasNextLine判断是否存在下一个字符串输入
nextInt获取int型数据输入,遇见回车和空格结束
hasNextInt判断是否存在下一个int型数据输入
nextFloat获取float型数据输入,遇见回车和空格结束
hasNextFloat判断是否存在下一个float型数据输入
nextDouble获取double型数据输入,遇见回车和空格结束
hasNextDouble判断是否存在下一个double型数据输入

9.2 输出

System.out.print(数据):打印但不会换行;
System.out.println(数据):打印并且会换行;
System.out.prinf(数据格式,数据参数):打印但不会换行;

示例:

//按照%d格式输出
System.out.printf("%d", 123);
//按照%s格式输出
System.out.printf("%s", "hello");
//输出并换行
System.out.println("this is a book");
//输出且不换行
System.out.print("that is a ");
System.out.print("pencil box");
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值