Java培优班-第二天 - 基础语法 -(上午:数据类型;下午:数据类型)

mac2025-02-07  10

上午:Day02 数据类型

Java是强类型语言 -----》 数 据 是 安 全 的 \color{#4285f4}{数据是安全的}

1. 数据类型

前言

1.1.1 标识符

    可以简单的理解为一个名字。在Java中,我们需要标识代码的很多元素,包括类名、方法、字段、变量、包名等。我们选择的名称就称为标识符,并且遵循以下规则:

A. 标识符可以由字母、数字、下划线(_)、==美元符($)==组成,但

不能包含 @、%、空格等其它特殊字符

B. 不能以数字开头。

C. 标识符是严格区分大小写的。

D. 标识符的命名最好能反映出其作用,做到见名知意。

1.1.2 关键字

在java语言中已经被赋予特定意义的一些单词。一共有53个关键字。其中有两个保留字: c o n s t \color{#4285f4}{const} const g o t o \color{#4285f4}{goto} goto。关键字不能被用作标识符!!

1.1.3 注释

Java代码的解释说明。不影响程序的运行,用于辅助读程。

//单行注释

/* 多行注释 */

/** 文档注释 */

1.1.4 变量

    在JAVA中,有的数据值是不固定的,总在变,我们还需要记录这些值,我们可以把这些值理解为变量。

我们通过三个元素来描述变量:变量类型,变量名以及变量值。

int age=18; //声明int类型的变量并赋值 String tel; //声明String类型的变量

注意:

1、 变量名必须是一个有效的标识符。

2、 变量名不可以使用java关键字

3、 变量名不能重复

1.1.5 常量

    在程序运行过程中一致不会改变的量成为常量。

略。。。

1.2 基本类型(八种)

1.2.1 介绍

1.2.2 练习1:测试最大值最小值

package cn.tedu.basic; //这个类用来测试基本类型数据的取值范围 public class Demo_Basic { public static void main(String[] args) { //整型数据类型的取值范围 //定义变量 记录byte的最大最小值 byte max = Byte.MAX_VALUE; byte min = Byte.MIN_VALUE; System.out.println("Maximum of Byte "+max); System.out.println("Minimum of Byte "+min); System.out.println(Short.MAX_VALUE); System.out.println(Short.MIN_VALUE); System.out.println(Integer.MAX_VALUE); System.out.println(Integer.MIN_VALUE); System.out.println(Long.MAX_VALUE); System.out.println(Long.MIN_VALUE); System.out.println(Float.MAX_VALUE); System.out.println(Float.MIN_VALUE); System.out.println(Double.MAX_VALUE); System.out.println(Double.MIN_VALUE); char c = '我'; char c1 = 97 ; char c2 = 'a' ; System.out.println(c); System.out.println(c1); System.out.println(c2); } }

注意1: char c = ‘我’; 是成立的!

注意2: 当char c1 = 97; char存的是一个数字时,会到ASC码表里面查找对应的字符

1.2.3 练习2:圆形面积

package cn.tedu.basic; public class Demo_size { public static void main(String[] args) { System.out.println(mathArea(10)); } static double mathArea(double r) { return r*r*Math.PI; } }

1.2.4 练习3:变量交换

接收用户输入的值a和b:假设a=1,b=2将a和b的值做交换

package cn.tedu.hello; //这个类用来完成变量值的交换 public class Demo_Exchange { public static void main(String[] args) { int a = 1 ; int b = 2 ; int t = a ; a = b ; b = t ; System.out.println(a); System.out.println(b); } }

2. 基本类型的字面值(5条)

2.1 整数字面值是int类型

int a = 999999999999999;

2.2 byte,short,char三种比int小的整数可以用范围内的值直接赋值

byte b = 127;

byte b2 = 128;

2.3 浮点数的字面值是double类型

float f = 3.0;

2.4 字面值后缀LFD

long a = 999999999999L;

float b = 3.0F;

double d = 3D;

2.5 进制前缀

0x - 16进制

0 -8进制

\u -char类型,16进制

3. 基本类型的类型转换

3.1 大类型转小类型需要强制

3.2 小类型转大类型默认转换

3.3 浮点数转成整数,小数直接舍弃

不管0.1还是0.9全都舍弃。

4. 运算规则(5条)

4.1 计算结果的数据类型,与最大类型一致

3/2

package cn.tedu.basic; public class Demo_32 { public static void main(String[] args) { System.out.println(3/2); } }

4.2 byte,short,char三种比int小的整数,运算时会先自动转换成int

byte a = 1;

byte b = 2;

byte c = a+b;

应该这样:

int c = a+b;

4.3 整数运算溢出

整数运算,类似于一个中标,转到最大时,再转会回到最小。3亿m/s

计算:光速运行一年的长度是多少米

package cn.tedu.basic; public class Demo_01 { public static void main(String[] args) { System.out.println(300000000*60*60*24*365); //整数溢出,输出结果是错误的 } }

package cn.tedu.basic; public class Demo_01 { public static void main(String[] args) { Long l = 300000000L*60*60*24*365; //在运算的最前面加L,转换为Long类型,运算结果就正确了; System.out.println(l); } }

4.4 浮点数运算不精确

工具类中提供解决方案

1-0.8

System.out.println(1-0.8);

4.5 浮点数的特殊值

Infinity 无穷大 3.14/0

System.out.println(35.0/0);

Nan not a number 0/0.0

package cn.tedu.basic; public class Demo_01 { public static void main(String[] args) { System.out.println(1-0.8); System.out.println(35.0/0); System.out.println(0/0.0); } }

5. 运算符

5.2 练习 两个数比大小

package cn.tedu.basic; public class Test5_Max { public static void main(String[] args) { int a = 1 ; int b = 2 ; //比较大的值 int max ; max = a>b ?a : b ; System.out.println(max ); } }

5.3 练习 多个个数比大小

package cn.tedu.basic; public class Test6_Max3 { public static void main(String[] args) { Integer[] is = { new Integer(11) , new Integer(2) , new Integer(3) , }; int max = is[0] ; for(int i=1 ; i<is.length ; i++) { max = max>=is[i] ? max : is[i] ; } System.out.println(max); } }
1.1 练习3:平年闰年

创建day03工程

创建cn.tedu.basic包

创建Test1_RunNian.java

输入年号,判断是否是闰年。两个条件:

1、能被4整除,并且不能被100整除

2、能被400整除

package cn.tedu.basic;

import java.util.Scanner;

//这个类用来测试平年闰年

public class Test1_RunNian {

public static void main(String[] args) { //1、定义变量记录年号,接收键盘输入的值 int year = new Scanner(System.in).nextInt() ; //2、拿着year判断,判断到底是平年还是闰年 String desc = "平年";//设置默认值都是平年 //if(判断条件){满足条件的代码...} /*if(year%4==0){//能被4整除 if(year%100 != 0){//不能被100整除 desc = "闰年";//修改desc的值,变成闰年 } } if(year%400==0){//能被400整除 desc = "闰年";//修改desc的值,变成闰年 }*/ //优化1:判断条件1 || 判断条件2 //(小条件1 && 小条件2) | | 能被400整除 if((year%4==0 && year%100 != 0) || year%400==0){ desc = "闰年";//修改desc的值,变成闰年 } //通过+拼接字符串 System.out.println(year+"年是"+desc); }

}

最新回复(0)