提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
前言
一、字面常量
二、数据类型
三、变量
3.1 变量概念
3.2 语法格式
3.3 整型变量
3.3.1 整型变量
3.3.2 长整型变量
3.3.3 短整型变
3.3.4 字节型变量
3.4 浮点型变量
3.4.1 双精度浮点型
3.4.2 单精度浮点型
3.5 字符型变量
3.6 布尔型变量
3.7 类型转换
3.7.1 自动类型转换(隐式)
3.7.2 强制类型转换(显式)
3.8 类型提升
4. 字符串类型
总结:
今天我们进入到Java中数据结构和变量的学习当中,本节也是学习Java的基础,内容很简单,希望大家认真学习,接下来就让我们进入本节学习!
public class Demo
{
public static void main(String[] args){
System.Out.println("hello world!");
System.Out.println(100);
System.Out.println(3.14);
System.Out.println('A');
System.Out.println(true);
System.Out.println(false);
}
}
int a = 10; // 定义整形变量a,a是变量名也称为标识符,该变量中放置的值为10
double d = 3.14;
char c = 'A';
boolean b = true;
System.Out.println(a);
System.Out.println(d);
System.Out.println(c);
System.Out.println(b);
// 注意:在一行可以定义多个相同类型的变量
int a1 = 10, a2 = 20, a3 = 30;
System.Out.println(a1);
System.Out.println(a2);
System.Out.println(a3);
// 方式一:在定义时给出初始值int a = 10;System.Out.println(a);// 方式二:在定义时没有给初始值,但使用前必须设置初值int b;b = 10;System.Out.println(b);// 使用方式二定义后,在使用前如果没有赋值,则编译期间会报错int c;
System.Out.println(c);c = 100;// int型变量所能表示的范围:System.Out.println(Integer.MIN_VALUE);System.Out.println(Integer.MAX_VALUE);// 注意:在定义int性变量时,所赋值不能超过int的范围int d = 12345678901234; // 编译时报错,初值超过了int的范围
int a = 10;long b = 10; // long定义的长整型变量long c = 10L; // 为了区分int和long类型,一般建议:long类型变量的初始值之后加Llong d = 10l; // 一般更加以加大写L,因为小写l与1不好区分// long型变量所能表示的范围:这个数据范围远超过 int 的表示范围. 足够绝大部分的工程场景使用.System.Out.println(Long.MIN_VALUE);System.Out.println(Long.MAX_VALUE);
(类比长整型变量)
short a = 10;System.Out.println(a);// short型变量所能表示的范围:System.Out.println(Short.MIN_VALUE);System.Out.println(Short.MAX_VALUE);
byte b = 10;System.Out.println(b);// byte型变量所能表示的范围:System.Out.println(Byte.MIN_VALUE);System.Out.println(Byte.MAX_VALUE);
double d = 3.14;System.Out.println(d);
神奇代码一int a = 1;int b = 2;System.out.println(a / b); // 输出 0.5 吗?在 Java 中 , int 除以 int 的值仍然是 int( 会直接舍弃小数部分 ) 。 如果想得到 0.5, 需要使用 double 类型计算.输出0.5的代码:double a = 1.0;double b = 2.0;System.out.println(a / b); // 输出 0.5或者:double a = 1;double b = 2;System.out.println(a *0.1/ b); // 输出 0.5
神奇代码二double num = 1.1;System.out.println(num * num); // 输出1.21吗?// 执行结果1.2100000000000002解析: 小数定义:没有一个精确的数字,在计算机储存时,只能精确到小数点候几位。
float num = 1.0f; // 写作 1.0F 也可以System.out.println(num);
char c1 = 'A'; // 大写字母char c2 = '1'; // 数字字符System.out.println(c1);System.out.println(c2);// 注意:java中的字符可以存放整形char c3 = '帅';//字符数据结构一个汉字=两个字节System.out.println(c3);
boolean b = true;System.out.println(b);b = false;System.out.println(b);
boolean value = true;
System.out.println(value + 1);
// 代码编译会出现如下错误
Test.java:4: 错误: 二元运算符 '+' 的操作数类型错误
System.out.println(value + 1);
^ 第一个类型: boolean
第二个类型: int
1 个错误
int a = 10;long b = 100L;b = a; // 可以通过编译a = b; // 编译失败
代码示例int a = 100;long b = 10L; )b = a; // a和b都是整形,a的范围小,b的范围大,当将a赋值给b时,编译器会自动将a提升为long类型,然后赋值a = b; // 编译报错,long的范围比int范围大,会有数据丢失,不安全float f = 3.14F;double d = 5.12;d = f; // 编译器会将f转换为double,然后进行赋值f = d; // double表示数据范围大于float,直接将float交给double会有数据丢失,不安全
int a = 10;long b = 100L;b = a; // int-->long,数据范围由小到大,隐式转换a = (int)b; // long-->int, 数据范围由大到小,需要强转,否则编译失败(long的范围比int范围大)float f = 3.14F;double d = 5.12;d = f; // float-->double,数据范围由小到大,隐式转换f = (float)d; // double-->float, 数据范围由大到小,需要强转,否则编译失败(double表示数据范围大于float)
1. int 与 long 之间: int 会被提升为 longint a = 10;long b = 20;int c = a + b; // 编译出错: a + b==》int + long--> long + long 赋值给int时会丢失数据long d = a + b; // 编译成功:a + b==>int + long--->long + long 赋值给long
2. byte与byte的运算
byte a = 10;byte b = 20;byte c = a + b;System.out.println(c);// 编译报错Test.java:5: 错误: 不兼容的类型: 从int转换到byte可能会有损失byte c = a + b;^
正确的代码:
byte a = 10;byte b = 20;byte c = (byte)(a + b);System.out.println(c);
int num = 10;// 方法1String str1 = num + ""; //整型+字符串 = 字符串// 方法2String str2 = String.valueOf(num);
String str = "100";int num = Integer.parseInt(str);system.out.printf(num+1);
今天的内容主要介绍了Java中有关数据类型和变量的有关知识,这些知识是学习Java的基础也是重要的知识点,注意要多回顾和复习,直到完全掌握为止。今天的内容就分享到这里,我们下期再见!!!