2021.3.13 java语言基础
/*
编程实现变量的声明和使用
*/
import java.util.Scanner;//导入java目录中util目录的Scanner类//
public class VarTest{/var是变量的简写/
public static void main(String[] args){
//1.单行注释 声明一个变量并初始化 数据类型 变量名=初始值 //
int age =18;
//2.使用变量之前需要声明并且初始化//
//3.打印变量的数值 + 字符串的连接符,用于将两块内容连接起来//
System.out.println("age = " + age);//输出的就是 age = 18 //
String name="郭建祎";
System.out.println("name = " + name);
//4.变量不可以重复声明,下面不能再出现 int age =19; //
//5.由数字字母下划线以及¥等组成,数字不能作为开头 //
//6.不可以使用java中的关键字//
//例题:提示用户从键盘输入自己的姓名和年龄信息并打印出来//
//1.声明两个变量用于记录姓名和年龄信息//
String name2;
int age2 ;
//先分析,然后写注释,然后写代码
//2.提示用户从键盘输入姓名和年龄信息并放入变量中//
System.out.println("请输入您的姓名和年龄信息:");
//创建一个扫描器来扫描键盘输入的内容 System.in代表键盘输入
Scanner sc = new Scanner(System.in);
//通过扫描器读取一个字符串数据放入变量name2中,
name2=sc.next();
//读取一个整型给age2
age2=sc.nextInt();
//3.打印变量的数值
System.out.println("name2=" + name2);
System.out.println("age2=" + age2);
//例题:提示用户从键盘输入自己的姓名和年龄信息并打印出来//
//1.声明两个变量用于记录姓名和年龄信息//
//String name2;
//int age2 ;
//先分析,然后写注释,然后写代码
//2.提示用户从键盘输入姓名和年龄信息并放入变量中//
System.out.println("请输入您的姓名和年龄信息:");
//创建一个扫描器来扫描键盘输入的内容 System.in代表键盘输入
//Scanner sc = new Scanner(System.in);
//通过扫描器读取一个字符串数据放入变量name2中,
String name3=sc.next();//声明之后立马输入,变量使用随时使用,用的时候再声明,//
//读取一个整型给age2
int age3=sc.nextInt();//声明之后立马输入//
//3.打印变量的数值 尽可能减少重复的代码
//System.out.println("name2=" + name2);
//System.out.println("age2=" + age2);
System.out.println("name3=" + name3 + ",age3=" + age3);//逗号为了看起来好看
}
}
/*
编程实现整数类型的使用
*/
public class IntTest{
public static void main(String[] args){
//1. 声明一个bate类型的变量并初始化
//byte b1 = 25;
//如果是 byte b1=250那就会报错,因为byte的范围是-128~127
//250这种直接写出来的整型数据叫做直接量/常量/字面值 默认为int类型
//表示250需要三个字节,所以byte不行,但是会出现“从int 转换到byte 会有损失”
//那为什么25可以呢,是因为编译器自动优化
//2.打印变量的数值
//3.声明一个short类型
//4.更大的话使用int / long
//5.int b1=2502505006 就会出现“整数过大”的报错,而且就算把int 改为long,
//5.也依然报错,因为编译器默认给定的数字是int类型
//5.解决方法是在数字后面加“l或者L”,例如int b1=2502505006L,
//5.此时就会报错“超出范围”和之前一样的错误,此时要改为long b1=2502505006L
//5.若描述比Long类型更大的数据则使用java.math.BigTnteger类型
//6.一般来说使用 int 就足够了
short b1 = 250;
System.out.println("b1 = " + b1 );//b1=25 b1=250
//7.挑出下列代码的错误
// int i2 = 25;
// byte b2 = i2;
// System.out.println("b2 = " + b2 );
// 解:这里的i2是个变量,虽然现在的确符合范围,但是有可能不
// 在范围内,这个和之前直接定义是不一样的,
// 之前的是直接赋值,数值是不会变化的
//实现浮点类型的使用
//1.先声明一个float类型的变量并初始化
float f1 = 3.1415926f;
double f2 = 3.1415926d;
//2.打印变量的数值
System.out.println("f1 = " + f1 ); //f1 =3.1415
System.out.println("f2 = " + f2 );
//出现错误:从double转换到float可能会有损失
//小数数据默认为double类型 此时可以
//在数字后面加 f 与前面的处理方法类似
//如果是3.1415926则会输出3.1415925,
//因为有效字节是七位有效数字,最后一个6已经是第8位了
//double 类型就可以输出3.1415926,
//声明double 的时候不用加d因为默认就是double类型
//推进用double类型
//笔试考点
//System.out.println(0.1+0.2);
System.out.println(0.1+0.2);
//输出的是 0.30000000000000004 运算时可能有误差 若希望
//实现精准运算,则借助java.math.BigDecimal 类型
}
}
/*
编程实现布尔类型的使用
*/
public class IntTest{
public static void main(String[] args){
//1.声明一个boolean类型的变量并初始化
boolean b1 = true;
//2.打印变量的数值
System.out.println("b1 = " + b1 );
//b1=ture
//3.修改变量b1的数值
b1 = false;
System.out.println("b1 = " + b1 );
//b1=1;会报错,因为两个类型一个是布尔一个是int不能互相转换
}
}
/*
编程实现字符类型的使用
*/
public class CharTest{
public static void main(String[] args){
//1.声明一个字符类型的变量并初始化
char c1 = 'a';
//2.打印变量的数值
System.out.println("c1 = " + c1 );
//输出: c1=a
System.out.println("对应的编号是" + (int)c1 );
//输出: 对应的编号是97 计算机内部以97表示
char c2 = 98;
System.out.println("c2 = " + c2 );
System.out.println("对应的编号是" + (int)c2 );
//输出: c2 = b 对应的编号是98 c2是char类型,
//因此打印的时候按照char类型打印
//(int)之后代表强制让用int来表示,所以是98
//'0'-48 'A'-65 'a'-97 空格-32 换行符-10
//3.使用 Unicode字符集来表示我的名字 郭建祎
char c3 = '郭';
char c4 = '建';
char c5 = '祎';
System.out.println("郭建祎对应的编号是" + (int)c3 +(int)c4+ (int)c5);
//输出是 : 郭建祎对应的编号是371012431431054
//特殊字符的使用
System.out.println("我想过过过过过的生活" );
//System.out.println("我想过过“过过过的生活" );
//这样的话会报错,
//双引号有两个含义:a.字符串的开头和结尾的标识 b.双引号自身
System.out.println("我想过过\"过过\"过的生活" );
// \表示转义,比如\" 就代表 "
System.out.println("我想过过\"过过\n过的生活" );
}
}
/*
编程实现基本数据类型之间转换的使用
*/
public class TransformTest{
public static void main(String[] args){
//1.声明两个变量并初始化
byte b1 =10;
short s1= 20;
//2.打印变量的数值
System.out.println("b1 = " + b1 );//b1 =10
System.out.println("s1 = " + s1 );//s1=20
//3.实现自动类型的转换
//s1=b1;
//从byte类型到short类型的转换,从小到大,自动转换
//System.out.println("s1 = " + s1 );//s1=10
//实现强制类型转换的使用
//从short 到 byte 需要加上括号然后才可以强行转换
//从大到小属于强制,大的东西放进去小口袋需要强制
b1 =(byte) s1 ;
System.out.println("b1 = " + b1 );
short d1 = 128;
byte e1=5;
e1=(byte)d1;
System.out.println("e1 = " + e1 );
//输出的是-128
//128:0000 0000 1000 0000 (short)
//byte 只取 1000 0000 第一位是符号位,因此为-128
//1000 0000 ---- 0111 1111 ---- 1000 0000 ---- 128 ---- -128
}
}