Java基础知识篇02——Java基本语法

这篇具有很好参考价值的文章主要介绍了Java基础知识篇02——Java基本语法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、数据类型

定义:

就是用了保存数据的一个类型,一种数据类型,只能保存该类型数据值

作用:

  1. 只有了解数据类型,才能选择合适的类型存放数据,才能更好的利用计算机硬件资源(内存和硬盘等)。
  2. 不同的数据类型存放数据大小是不同的。
  3. 数据类型的使用方式就是用来声明一个变量,装数据的。

Java基础知识篇02——Java基本语法

常用的整数类型是 int 和 long,byte 和 short 基本不用,常用的小数类型是 double,float 基本不用 ,因为 double 是不精确的,在实际开发中表示精确的小数我们使用 BigDecimal 类。

Java基础知识篇02——Java基本语法

计算机存储数据:存储在硬盘【磁盘】,硬盘中的方式都是用的二进制数据的方式进行存储 01010101010101010101010101010101

计算机底层本质存储的数据形式就是二进制数据:例如 0101010101010101

1.1、基本数据类型

1.1.1、整型:

整数类型包含:byte、short、int、long

整数的默认类型为:int

Java基础知识篇02——Java基本语法

为什么需要整数有四种类型?

因为不同的数据类型,占用的内存空间不一样,能够存储的值范围也就不一样

注意事项:

  1. byte的范围大小 [-128,127]
  2. long赋值时,因为整数默认是int类型,要转换为long类型的值,后面加上lL【建议写大写L】
  3. 如果超过了long的范围,用BigInteger的类来存放其值【后面学习】
  4. 同一个整数可以使用不同的进制表示

1.1.2、浮点型:

浮点数类型包括:float、double

浮点数默认类型为:double

浮点数可以理解位表示的小数;

Java基础知识篇02——Java基本语法

注意事项:

  1. 直接赋值给float类型,需要加上Ff,因为默认类型都为double。

  2. 精度损失,如double d = 1.0 表示的是无限接近于1.0的一个小数,而不是真正的1.0。如果需要精确的表示一个小数,可以使用后面学到的BigDecimal。

  3. 单精度双精度区别:

    3.1对于单精度浮点数,运行速度相比double更快,占内存更小,

    3.2但是当数值非常大或者非常小的时候会变得不精确。

    3.3双精度比单精度表示的位数大 精确的位数多,简单地说, float表示的小数点位数少。

    3.4最近几天建议用double类型,而实际开发用BigDecimal类型表示小数。

1.1.3、字符类型:

Java基础知识篇02——Java基本语法

单引号引起来的一个符号就是字符数据。例如:'a'

使用方式

  1. 'a'、’1’、’好’等最常用。
  2. 使用一个数字表示字符,参考下图中ASCII码表[字符编码]。关于ASCII码表请百度了解。
char c = 65;// 表示 ‘A’这个字符
//16进制表示一个字符
char c = '\u0041';// 十六进制的0041,是十进制的65,在字符集中对应的是A字符
  1. 特殊字符使用

    \r 表示回车符;

    \n 表示换行符;

    \t 表示相当于Table键制表符,;

    \b表示退格键,相当于Back Space键;

    \’表示单引号;

    \” 表示双引号;

    \ 表示一个斜杠\。

注意:因为系统差异性,在不同的系统中 ,有时候\r起作用,有时候\n起作用。所以,一般建议:\r\n 连用,这样可以在任意系统中都可以换行。

Java基础知识篇02——Java基本语法

1.1.4、布尔类型

Java基础知识篇02——Java基本语法

只有两个值:true、false,不能使用:0和1表示。

位数占1位

1.2、引用数据类型

除了基本类型以外,几乎所有的其他类型都是引用类型。

如:java自带的类、我们自定义的类、接口、枚举、数组等都属于引用数据类型。

  1. 类 class2
  2. 接口 interface
  3. 枚举 enum
  4. 抽象类 abstract class
  5. 数组 数据类型[]

String 类是java中一种自带的引用数据类型,表示字符串数据。

//使用双引号 包含字符内容。
String  s = "你好";
System.out.println(s);// 你好

二、基础语法和变量

2.1、基础语法

命名规范:

  1. 一般不建议使用$下划线_作为起始符号

  2. 见名知意:一般来说都是取一些有意义的单词。例如,age表示年龄

  3. 类名首字母必须大驼峰。大驼峰:首字母大写,后面每个单词首字母大写。

    例如:用户管理类 : UserManagement 大驼峰

  4. 方法名、变量名小驼峰。小驼峰:首字母小写,后面每个单词首字母大写

    用户名(成员)变量 : userName 小驼峰

    获取用户名方法 : getUserName() 小驼峰

  5. 不要以java中关键字、保留字、jdk中存在的类 命名

注释:

单行注释: 语法:// 
一般写在main(或者其他)方法内部

多行注释: 语法:/* */
可以注释多行内容,一般写在main方法中,用来写解题思路

多行注释: 语法:/** */
这是文档注释,写在方法、类、成员变量上面

2.2、变量

概念:

​ 就是一个盒子(容器),用来装数据的。同一时间只能装一个数据。

变量是内存中的一个存储区域,该区域有自己的名称(变量名)和类型(数据类型),Java中每个变量必须先声明,后使用, 该区域的数据可以在同一类型范围内不断变化

Java基础知识篇02——Java基本语法

(变量可以理解为装某种类型数据的容器,容器可以重复使用)

声明变量:

int age;// 声明一个int类型的变量age(年龄) 
//数据类型 变量名1 = 值1, 变量名2 = 值2, 变量名3 = 值3...;// 值和变量的类型必须相同
int age, age2, age3;	
//或者
int age = 1, age2 = 2, age3 = 3;

变量赋值:

//语法:变量名 = 值; =右边的值,赋值给 =左边的变量。注意:必须保证值和变量的数据类型一致
age = 23;// 将23赋值给变量age。注意:必须保证值23和变量age的数据类型一致

eg:

public class _02Var {
	public static void main(String[] args) {
	// ==================  int类型变量使用  =========================
		
	// 1. 声明变量,语法:数据类型 变量名;  例如:int age;
	int score;// 声明一个int类型变量score
	// 2. 变量赋值,语法:变量名 = 值
	score = 0;// 将int类型的值0通过=赋值给=左边的变量score	
	// 直接打印输出变量score
	System.out.println(score);	
	// 做运算(+,-,*,/....) score + 1
	score = score + 1;
	System.out.println(score);// 1	
	// 赋值给另外的变量
	int score2 = score;
	System.out.println(score2+","+score);// 1
	System.out.println(score);// 1
		
	// ========	String 字符串类型(引用类型)	最常用【掌握】=========================
	// 1 声明变量同时赋值,语法:数据类型 变量名 = 值;	
	String str = "abc";
	// 2. 变量取值:		语法:变量名;
	System.out.println(str);
	// +在字符串中表示连接符号,也就是拼接符号
	str = str + "123";// 将String变量str中值abc取出来,然后通过+号拼接 123,重新赋值给 str
	// 重新打印str
	System.out.println(str);// abc123
	// +在字符串出现之前,表示加法运算,字符串之后表示拼接符号
	System.out.println(1 + 2 + "ab" + 1 + 2);// 3ab12
}

注意事项:

  1. 此处的数据类型可以是Java中支持的所有的数据类型!
  2. 数据类型限定了变量可以存值的类型
  3. 赋值使用的 = 号,从右往左赋值
  4. 规范写法:= 两边都加上一个空格
  5. 变量一旦定义好了,可以反复使用
  6. 变量只可以存一个值,下次存值会覆盖上一次的值

三、数据类型的转换

定义:

​ 将数据从一种格式或结构转换为另一种格式或结构的过程

作用

  1. 节约内存空间 byte short int long
  2. 将一些类型转换为项目所需要的类型

3.1、自动隐式转换

定义:

​ 将小的数据类型转换大的数据类型

Java基础知识篇02——Java基本语法

注意事项

  1. 在Java中,boolean类型与所有其他7种类型都不能进行转换。

  2. 其他 7种数据类型,它们之间都可以进行转换,但是可能会存在精度损失或者其他一些变化。
    byte -> short -> int -> long-> float-> double

    char -> int -> long-> float-> double

    byte与char 不能自动转换

    char与short不能自动转换

    由于小数(浮点数) 的存储方式,结构和整数不一样,所以,float哪怕是4个字节、

    long是8个字节,表示范围也大于long类型。知道就好无须深入研究。

    eg:

//1.
short s = 10;
int num = 20;
int n = num + s;
System.out.println(n);
//2.
int  num = 10;
double b = 10.01;
double  c = num + b;
System.out.println(c);
//3.char类型向更高长度类型(例如整型)转换时,会转换为对应的ASCII码值,再做其他类型的自动转换
char  c = 'A';
int num = 10;
int a = c + num;
System.out.println(a);
//4.特例:只看类型,不看值
/ 示例1:
int a = 129;
byte b = (byte)a;// 编译器只看容器不看值
System.out.println(b);// 结果为-127
// 示例2:
byte b = 100;// 可以自动转换
float f = 1.3;// 不能自动转换
int a = 2147483647;
a = a + 1;
System.out.println(a);// 结果为-2147483648

3.2、强制转换

定义:

​ 将大数据类型转为小数据类型

语法:

小数据类型 变量名 = (小数据类型)大类型值/大类型变量名

注意事项

  1. 高转低会导致精度丢失,有数据的溢出风险。溢出的时候,会以二进制进位。
  2. 实际开发中:应该要知道被强制转换的数据,是在一个已知的范围。
  3. int类型的具体的值,向byte、short、char类型转换的时候,值只要在其表示范围内,都会隐式转换。
  4. 编译只看类型不看值

eg:

int i1 = 123;
int i2 = 456;
float f1 = (float)((i1 + i2) * 1.2);// 类型大的转换为类型小的时,要加上强制转换符

short i = 99;
char c = (char)i;
System.out.println(c);  

byte b1 = 1;
byte b2 = 2;
byte b3 = (byte)(b1 + b2); // byte,short,char在计算时首先转换为int,大类型(int)转换为小类型的(byte)时要加强制转换

byte t = 127;// 不报错
int a = 127;
// 需要强制转换才不报错:编译器只看类型,不看值
byte b = (byte)a;
System.out.println(b); // 结果为 127
/**
*	4. 类型转换:(掌握)
  		byte  short(char)  int  long  float(单精度)  double(双精度) (只有数值类型才能相互转换)
  		----------------从左到右精度越来越高-------------------->
  1. 小转大,都是可以隐式转换  (从左到右) 
  2. 大转小,必须强制转换  (从右到左)	强制转换有数据的溢出风险。溢出的时候,会以二进制进位
  	强制转换语法:
  		小的数据类型 小的变量 = (小的数据类型)大的变量/值;		    		
  	当int类型的具体的值,向byte、short、char类型转换的时候,值只要在其表示范围内,都会隐式转换	  
 */
public class _03TypeChange {
    public static void main(String[] args) {
        // 1. 小转大,都是可以隐式转换  (从左到右)
        byte byt = 1;// 声明一个byte类型变量byt 赋值1
        short s = byt;// 声明一个short类型变量s 赋值一个byte类型变量byt
        int i = s;// 声明一个int类型变量i 赋值一个short类型变量s
        long lon = i;// 声明一个long类型变量lon 赋值一个int类型变量i
        float f = lon;// 声明一个float类型变量f 赋值一个long类型变量lon
        double doub = f;// 声明一个double类型变量doub 赋值一个float类型变量f	
        // 2. 大转小,必须强制转换  (从右到左)	强制转换有数据的溢出风险。溢出的时候,会以二进制进位
        // 强制转换语法:小的数据类型 小的变量 = (小的数据类型)大的变量/值;
        float f2 = (float)doub;// 声明一个float类型变量f2,赋值为一个强制转换的double类型变量 doub
        long lon2 = (long)f2;
        byte byt2 = (byte)128;// 128是int类型,强制转换有可能发生溢出,溢出时会以二进制进位
        System.out.println(byt2);// -128
        int a = 1;
    //	byte byt3 = a;// 报错,int类型a值是1,因为在编译期程序只看右边的数据类型,而不看变量中的值
        byte byt4 = 1;// 不报错
    }
}

4.3、表达式示例

四、运算符

4.1、算术运算符

算数运算(Arithmetic Operation)

+ :加号。只有String字符串参与的加法运算,才有拼接功能,在String之前,表示加法 运算,之后,才表示连接

-:减号。

*****:乘号。

/:除号。不能除0

%:模(也叫取余)相当于求余数。例如:10 % 3 ,表示求10除3的余数,结果是1

作用:1. 求余数 2. 找一个数的倍数 3. 可以拆分一个多位的数字

eg:

public class _05ArithmeticOperation {
	public static void main(String[] args) {
        System.out.println("============= 除法 / ==============");
        System.out.println(10 / 1);// 10
        System.out.println(10 / 2);// 5
        System.out.println(10 / 3);// 3
        System.out.println(10 / 4);// 2
        System.out.println(10 / 5);// 2
        System.out.println(10 / 6);// 1
        System.out.println(10 / 7);// 1
        System.out.println(10 / 8);// 1
        System.out.println(10 / 9);// 1
        System.out.println(10 / 10);// 1
        System.out.println(10 / 11);// 0
    	//System.out.println(10 / 0);// ArithmeticException算术异常		
		System.out.println("============= 特殊情况 ==============");	
        /*
         * 特殊情况:【了解】
             1) 10/3 =3; 
             2) 10.0/3=3.33333…
             3) 0/0
             4) 0.0/0.0  
             结果是NaN ,任何的NaN都不等于自己(面试题)not a number不是一个数字
             5) 1.0/0.0   结果:Infinity,表示无穷大
         */
        System.out.println(10.0 / 3); 
        System.out.println(0.0 / 0.0);// NaN
        System.out.println(1.0 / 0.0);// Infinity表示无穷大
        System.out.println("============== % 模(取余) ==============");
        System.out.println(10 % 1);// 0
        System.out.println(10 % 2);// 0
        System.out.println(10 % 3);// 1
        System.out.println(10 % 4);// 2
        System.out.println(10 % 5);// 0
        System.out.println(10 % 6);// 4
        System.out.println(10 % 7);// 3
        System.out.println(10 % 8);// 2
        System.out.println(10 % 9);// 1
        System.out.println(10 % 10);// 0
        System.out.println(10 % 11);// 10
    	//System.out.println(10 % 0);// ArithmeticException算术异常
        // 请求出个十百位的值  / % 
        int a = 127;
        // 求个位 
        int ge = a % 10;
        // 求十位 
        int shi = a / 10 % 10;
        // 求百位 
        int bai = a / 100;
        System.out.println(ge + " : " + shi + " : " + bai);
	}
}

4.2、自增自减运算符

++(加加)、--(减减)

注意事项:

  1. 自增自减只能够用于变量,不能用于常量
  2. 自增自减运算的优先级比其他算术运算符
  3. 一般用在循环语句中

使用要点:

  1. 把整个表达式看成是一个整体
  2. ++i 表示运算完再赋值,i++ 表示先赋值再运算

eg:

int i = 3;
        int a1 = i++ + i++ + i++;
        //i++=3 i=4 i++=4 i=5    i++=5 i=6 计算过程
        int b1 = ++i + ++i + ++i;
        //++i=7 i=7  ++i=8 i=8   ++i=9 i=9
        System.out.println("i = " + i); // 9
        System.out.println("a1 = " + a1); // 12
        System.out.println("b1 = " + b1); // 24

        int a2 = 1;
        int b2 = 2;
        // a++: 先赋值再自增	++a:先自增再赋值
        int c1 = a2++ + ++a2 + b2--;
        // a2++=1 a2=2  ++a2=3 a2=3 b2--=2 b2=1 c1=1+3+2
        int d1 = c1++ + c1-- + a2++ + ++b2;
        //  c1++=6 c1=7 c1--=7 c1=6 a2++=3 a2=4 ++ba=2 b2=2
        // a = ? b = ? c = ? d = ?
        System.out.println("a = " + a2);//4
        System.out.println("b = " + b2);//2
        System.out.println("c = " + c1);//6
        System.out.println("d = " + d1);//18

4.3、复合赋值运算符

赋值运算(Assignment Operation):是优先级最低的一种运算,等 = 后边的所有运算完毕后,才执行赋值运算。

+=(加等)、-=(减等)、=(乘等)、/=(除等)、=*(等于)

语法:

//+= 累加
int a = 5;
a += 5 => a = a+5

注意事项

  1. 从右到左,把符号右边的值赋值到左边的变量中
  2. 上面符号看成是一个整体: 例如 += 看成是一个符号,不要看成两个。
  3. 赋值运算有强制转换功能,可以避免类型提升.会有溢出风险
int i= 3;
i += 2;// 表示把2 累加到变量 i 中
i -= 1;
// 特例
short s = 3;
s += 2;		// 存在隐式转换
short s = 3;
s = s + 2;	// 报错,因为结果值是int,int不能自动转换为short
public class _08AssignmentOperation {
	public static void main(String[] args) {
        int a = 1;
        a += 5;// 表示将变量a的值累加上5,相当于a = (int)(a + 5);
        System.out.println(a);// 6 

        byte b = 127;
        b += 1;// b += 1相当于 : b = (byte)(b + 1);
        System.out.println(b);// -128
    	//	b = b + 1;// 报错, b + 1表达式结果是int类型
        a += 1 + 3 + 5;// 会先计算 += 右边所有的运算,再执行 += 赋值运算
        System.out.println(a);
    }
}

4.4、比较运算符

**比较运算 **(Compare Operation) :结果一定是 boolean 类型

<(小于)、>(大于)、<=(小于等于)、>=(大于等于)

  • ==(等等于),比较基本类型,比较的是值是否相等 ;比较引用类型,比较的是值并且地址是否相等
  • !=(不等于),比较基本类型,比较的是值是否不相等 ;比较引用类型,比较的是值并且地址是否不相等

4.5、三目运算符

语法:
x ? y : z
描述:
x 一般为一个关系表达式。
如果 x 的值为 true,那么就取 y 的值否则就取 z 的值。
eg:

bool resuilt=5>3?true:flase	

注意点:
凡使用if else的判断,可以考虑使用三元表示式;y 的结果类型必须跟 z 的结果类型一致,并且也要跟整个三元表达式的结果类型一致文章来源地址https://www.toymoban.com/news/detail-840340.html

到了这里,关于Java基础知识篇02——Java基本语法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Java基础知识——类、静态、继承、引用类型使用

    类的定义格式如下: 例如: 例如: 1.3.1 封装的步骤 1.使用 private 来修饰成员变量。 2.使用 public 修饰getter和setter方法。 1.3.2 封装的步骤实现 private修饰成员变量 public修饰getter和setter方法 1.4.1 构造器的作用 通过调用构造器可以返回一个类的对象,构造器同时负责帮我们把

    2023年04月19日
    浏览(48)
  • Java基础知识篇——Java基本介绍

    Java 是 Sun Microsystems 于 1995 年首次发布的一种 编程语言 和计算平台。编程语言还是比较好理解的,什么是 计算平台 呢? 计算平台是电脑中运行应用程序(软件的环境),包括硬件环境和软件环境。一般系统平台包括一台电脑的硬件体系结构,操作系统、运行时库。 Java 是快

    2024年03月11日
    浏览(50)
  • 数据库基础知识之数据类型

    mysql常用数据类型 一、数值类型(整型、浮点型) 1、整型 eg:添加一个表格:点击表——添加字段——名称——类型,年龄age是tinyint类型,要在下方勾选无符号,因为年龄都是正数,不存在负数一说,所以不需要符号。 点击保存,然后输入表名,比如t1,就出现了t1    然后

    2024年02月06日
    浏览(50)
  • JavaScript基础知识09——数据类型

    哈喽,大家好啊,这里是雷工笔记,我是雷工。 数据类型比较常见,无论是对程序员,还是电气工程师来说,都再熟悉不过了,这里跟着教程了解一下,主要看跟自己以往在其他PLC,C#,组态软件中应用的有啥不同。 在计算机的世界就像黑客帝国中的超级计算机,其中的人、

    2024年02月09日
    浏览(58)
  • TypeScript基础知识:高级数据类型

            TypeScript 是一种静态类型检查的 JavaScript 超集,它提供了许多强大的高级数据类型,可以帮助我们更好地定义和操作数据。本文将深入介绍 TypeScript 的高级数据类型,包括交叉类型、联合类型和映射类型,并通过示例代码演示它们的用法和优势。         交叉

    2024年01月17日
    浏览(51)
  • 探索MATLAB世界:掌握基础知识与实用技能(1. MATLAB环境与基本操作 2. 数据类型与变量 3. 条件与循环,1. 数据分析与统计 2. 图像处理与计算机视觉 3. 信号处理与控制系统)

    欢迎阅读本篇博客,我们将深入探讨MATLAB语言的基础知识与实用技能,旨在帮助初学者、初中级MATLAB程序员以及在校大学生系统地掌握这门强大的科学计算与数据可视化工具。 一、MATLAB的基础知识 1. MATLAB环境与基本操作 2. 数据类型与变量 3. 条件与循环 二、MATLAB的实用技能

    2024年03月12日
    浏览(62)
  • MySQL实战基础知识入门(13):数据类型

    MySQL实战基础知识入门(1):登录数据库命令行 MySQL实战基础知识入门(2):统计一天24小时数据默认补0的sql语句 MySQL实战基础知识入门(3):近7日销量合计php后端mysql语句如果当日为空则自动补0的解决方案 MySQL实战基础知识入门(4):MySQL高级函数CASE WHEN END MySQL实战基础知识入门

    2024年02月07日
    浏览(68)
  • python基础知识(二):变量和常用数据类型

    变量是值可以改变的量,其定义方法如下,通过赋值运算符将变量名和变量值连接: 例如: 其中将值\\\"Hello Python world!“通过赋值运算符”=\\\"赋值给变量message。 (1) 变量名只能包含字母、数字和下划线。变量名可以字母或下划线打头,但不能以数字打头,例如,可将变量命名为

    2024年02月06日
    浏览(45)
  • 音频数据处理基本知识学习——降噪滤波基础知识

    滤波是一种信号处理方法,它可以通过消除或减弱信号中的某些频率分量,来实现信号的去噪、去除干扰、增强某些频率成分等目的。常见的滤波方法包括低通滤波、高通滤波、带通滤波等。 降噪是一种信号处理方法,它可以通过消除或减弱信号中的噪声成分,来提高信号的

    2024年02月15日
    浏览(52)
  • 深度学习基础知识-pytorch数据基本操作

    1.1.1 数据结构 机器学习和神经网络的主要数据结构,例如                 0维:叫标量,代表一个类别,如1.0                 1维:代表一个特征向量。如  [1.0,2,7,3.4]                 2维:就是矩阵,一个样本-特征矩阵,如: [[1.0,2,7,3.4 ]                   

    2024年02月11日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包