标签:存在 浮点 描述 string 基本概念 方法 识别 程序 强制类型转换
当需要在程序中记录单个数据内容时,则声明一个变量即可,而声明变量的本质就是在内存中申请一个存储单元,由于改存储单元中的数据内容可以改变,因此得名为“变量”。
1、变量的声明方式
数据类型 变量名 = 初始值;
其中‘= 初始值’可以省略,但‘;’不能省略。
2、标识符的命名法则(笔试)
案例:
/*
案例:提示用户键盘输入自己的姓名和年龄信息并打印出来。
*/
//导入java目录中util目录中的Scanner类
import java.util.Scanner;
public class OwnTest {
public static void main (String [] args) {
//1. 声明两个变量用于记录姓名和年龄
//2. 提示用户从键盘输入姓名和年龄信息并放入到变量
//3. 打印变量的数值
//创建一个扫描器来扫描键盘输入的内容,System.in代表键盘输入
Scanner sc = new Scanner(System.in);
System.out.println("输入自己的姓名和年龄信息");
//通过扫描器读取一个字符串数据放入变量name中
String name = sc.next();
//通过扫描器读取一个整数放入变量age中
int age = sc.nextInt();
//System.out.println("name = " + name);
//System.out.println("age = " + age);
//尽可能减少重复代码
System.out.println("name = " + name + "," + "age = " + age);
}
}
Java语言中数据类型分为两大类:
基本数据类型:
byte、short、int、long、float、double、boolean、char
(占用字节)
引用数据类型
数组、类、接口、枚举、标注
1、进制之间转换
正十进制转换为二进制的方式:
除2取余,使用十进制整数不断地除以2取出余数,知道商为0时将余数逆序排序。
拆分发,将十进制整数拆分为若干二进制权重的和,有该权重下面写1,否则写0。
45=> 32+8+4+1
....128 64 32 16 8 4 2 1
0 0 1 0 1 1 0 1
正二进制转换为十进制的方式
加权法,使用二进制中的每个数字乘以当前位的权重再累加起来。
负十进制转换为二进制的方式
现将十进制的绝对值转换为二进制,然后按位取反再加1.
负数的需要补码:按位取反,再加1。
负二进制转换为十进制方式
先减1再按位取反,合并为十进制整数后添加负号。
2、单个字节表示的整数范围
3、整数类型
Java语言中整数类型有:byte、short、int、long,推荐int类型
byte,占1个字节,表示范围:-2^7 ~ 2^7-1
short,占2个字节,表示范围:-2^15 ~ 2^15-1
int,占4个字节,表示范围:-2^31 ~ 2^31-1
long,占8个字节,表示范围:-2^63 ~ 2^63-1;long描述最大的整数,若描述比long类型还大的数据则使用java.math.BigInteger类型
在Java程序中直接写出的整数类型叫做直接量/字面量/常量,默认为int类型。若希望表达更大的直接量,则在直接量的后面加上l或者L,推荐L。
int i = 25;
byte b1 = (byte)i;
//byte b1 = i; 错误: 不兼容的类型: 从int转换到byte可能会有损失
System.out.println("b1 = " + b1);
4、浮点数类型
Java语言中描述小数的数据类型:float和double,推荐double类型
float,占4个字节,叫做单精度浮点数,可以表示7位有效数字,范围:-3.403E38 ~ 3.403E38.
double,占8个字节,叫做双精度浮点数,可以表示15位有效数字,范围:-10798E308 ~ 1.798E308.
Java程序中直接写出的小数数据叫做直接量,默认为double类型。若用float类型的直接量,则需要在直接量后面加上f或F。
浮点数直接运算存在误差,若希望实现精确运算则借助java.math.BigDecimal类型。
System.out.println("sum =" + (0.1 + 0.2));
// sum =0.30000000000000004 浮点数运算存在误差,若希望实现精确运算则需要借助java.math.BigDecimal类型
5、布尔类型
6、字符类型
Java语言中描述单个字符的数据类型:char类型,如‘a’、‘中’等
char,占2个字节且没有符号位,表示范围:0 ~ 65535。
计算机底层只识别0和1的二进制序列,对‘a’这样的数据无法直接在计算机中存储。为了使得该数据能够存储起来就给该数据指定一个编号,然后将编号存储起来,该编号就叫做ASCII。
/*
编程实现字符类型的使用
*/
public class CharTest {
public static void main(String [] args) {
//声明一个char类型的变量并初始化
char c1 = ‘a‘;
//打印变量的数值
System.out.println("c1 = " + c1);
System.out.println("对应的编号是: " + (int)c1);//对应的编号是: 97,表示将char类型的c1强制转换为int类型并打印 97
System.out.println("---------------------------------");
//char类型可以直接初始化,赋值为编号。
char c2 = 98;
System.out.println("c2 = " + c2);
System.out.println("对应的编号是: " + (int)c2);
}
}
要求掌握的ASCII:‘0’-48,‘A’-65,‘a’-97,空格-32,换行符-10
Java字符类型采用Unicode字符集编码。Unicode是世界通用的定长字符集,所有的字符都是16位(2个字节)。
要求掌握的转义字符:\ " - " ; \ ‘ - ‘ ; \ \ - \ ; \t - 制表符 ; \n - 换行符
//使用Unicode字符集来表示一下我的名字 \u0073\u006f\u006c\u0064\u0069\u0065\u0072(中文转换)
char c3 = ‘\u0073‘;
char c4 = ‘\u006f‘;
char c5 = ‘\u006c‘;
char c6 = ‘\u0064‘;
char c7 = ‘\u0069‘;
char c8 = ‘\u0065‘;
char c9 = ‘\u0072‘;
//使用Unicode字符集来表示一下我的名字 soldier(ASCII转换)
/*
char c3 = ‘s‘;
char c4 = ‘o‘;
char c5 = ‘l‘;
char c6 = ‘d‘;
char c7 = ‘i‘;
char c8 = ‘e‘;
char c9 = ‘r‘;
//以ASCII码进行转换报错
*/
System.out.println("我的名字:" + c3 + c4 + c5 + c6 + c7 + c8 + c9);//我的名字:soldier
System.out.println("---------------------------------");
//特殊字符的使用 双引号本身的2个含义:a.字符串的开头个结尾标记 b.双引号自身
// \转义就是转换原有的含义
System.out.println("我想过过\"过过过过的生活");// \" - "
System.out.println("我想过过\‘过过过过的生活");// \‘ - ‘
System.out.println("我想过过\\过过过过的生活");// \\ - System.out.println("我想过过\t过过过过的生活");// \t - 制表符
System.out.println("我想过过\n过过过过的生活");// \n - 换行符
基本数据类型之间的转换
基本数据类型转换分为:自动类型转换盒强制类型转换
自动类型转换:从小类型到大类型的转换
byte=>short=>int=>long=>float=>double
char=>int
强制类型转换:从大类型转换到小类型之间的转换
语法格式:变量名 = (目标类型)源类型变量名;
强转有风险,操作需谨慎。
/*
编程实现基本数据类型转换
*/
public class TransformTest {
public static void main(String [] args) {
//声明两个变量并初始化
byte b1 = 10;
short s1 = 20;
//打印变量的数值
System.out.println("b1 = " + b1);
System.out.println("S1 = " + s1);
System.out.println("-----------------");
//自动转换后
s1 = b1;
System.out.println("S1 = " + s1);
System.out.println("S1 = " + s1);
System.out.println("-----------------");
//强制类型转换后
s1 = 200;
b1 = (byte) s1;
System.out.println("b1 = " + b1);//b1 = -56 200超出byte范围造成数据丢失
System.out.println("S1 = " + s1);//S1 = 200
System.out.println("-----------------");
s1 = 30;
b1 = (byte) s1;
System.out.println("b1 = " + b1);//b1 = 30 30没有超出byte范围造成数据丢失
System.out.println("S1 = " + s1);//S1 = 30
}
}
标签:存在 浮点 描述 string 基本概念 方法 识别 程序 强制类型转换
原文地址:https://www.cnblogs.com/china-soldier/p/14815458.html