(二)java的数据类型

news/2024/2/21 2:36:30

文章目录

      • 十二.java数据类型
        • 1.基本数据类型
        • 2.引用数据类型
        • 3.整型的细节
        • 4.浮点类型
        • 5.字符型的使用与细节
          • 字符型使用细节
          • 编码格式问题
        • 6.布尔类型
        • 7.数据类型转换
          • 自动类型转换细节
          • 强制类型转换
          • String类型的转换
          • 练习

十二.java数据类型

1.基本数据类型

数值型:整数类型,存放整数(byte[1],short[2],int[4],long[8])#浮点型(float[4],double[8])

字符型:char[2]

布尔类型:boolean[1],存放true和false

2.引用数据类型

类(class)//接口(interface)//数组[]

类型存储空间范围
byte[字节]1byte-128~127
short[短整型]2byte-215~215-1
int[整型]4byte-231~231-1
long[长整型]8byte-263~263-1

3.整型的细节

java程序中整型变量默认为int型,声明long类型的变量后面需加上L或者l

java中声明常量为int型,除非不足以表示大数才使用long类型

bit是计算机中的最小存储单位,byte:计算机中基本存储单元,1byte=8bit

4.浮点类型

浮点型的分类

类型占用存储空间
单精度float4byte
双精度double8byte

浮点数=符号位+指数位+尾数位

尾数部分可能丢失,造成精度损失(小数都是近似值)

float num1 = 1.1; //fakse
float num2 = 1.1F; //true
double num3 = 1.1; //true
double num4 = 1.1f; //true
double num5 = .123; //等价与0.123
System.out.println(num5); //0.123//科学计数法
System.out.println(5.12e2); //512
System.out.println(5.12E2); //0.0512   //通常情况下,应该使用double型,double要比float精准度更高
//[举例说明]
double num6 = 2.1234567891;
float num7 = 2.1234567891;
System.out.println(num6);
System.out.println(num7);//浮点数使用陷阱	2.7和8.1/3
double num7 = 2.7
double num8 = 8.1 / 3 //2.7
System.out.println(num7); //2.7
System.out.println(num8); //无限接近2.7,但不等于2.7
if( num7 == num8 ) {System.out.println("相等");
}
if(Math.abs(num7 - num8) < 0.000001) {System.out.println("差值非常小,到我所规定的精度,认为相等");
}
System.out.println(Math.abs(num7 - num8));
//细节:如果是直接查询的小数或者直接复制,是可以判断相等的

5.字符型的使用与细节

char c1 = 'a';
char c2 = '\t';
char c2 = '韩';
char c2 = 97; //字符类型可以直接存放一个数字
字符型使用细节

1.字符型常量使用的单引号(‘’)括起来的单个字符,而双引号则是字符串类型的

2.char中可以使用转义字符

3.cahr 的本质是一个整数,在输出时,对应的unicode码对应的数值

4.直接给char赋一个整数,然后输出时,会按照对应的unicode字符输出

5.char运算时,相当于一个整数,都是它所对应的Unicode码

char c1 = 97;
System.out.println(c1);
char c2 = 'a';
System.out.println(int(c2)); //输出a对应的数字
char c3 = '席';
System.out.println(int(c3)); //输出席对应的ASCII码值
char c4 = 38889;
System.out.println(c4); //输出'韩'System.out.println('a' + 10); //输出'107'cahr c5 = 'b' + 1; //98 + 1 = 99
System.out.println(int(c5)); //99
System.out.println(c5); //输出'99'对应的字符

字符型存储到计算机中,需要将字符对应的码值找出来,例如:

存储:‘a’ == > 码值97 == > 二进制 == >存储

读取:二进制 == > 97 ==> ‘a’ ==> 显示

编码格式问题
编码格式描述
ASCII一个byte表示,一个128bit
unicode固定大小,汉字和字母统一两个byte
utf-8字母1byte,汉字3byte
gbk字母1byte,汉字2byte
big5繁体中文(香港,台湾)

6.布尔类型

不可以用0或者非0的整数来代替false和true.这点和c不同

boolean isPass = true;
if(isPass == true) {System.out.println("true"); 
} else {System.out.println("false"); 
}

7.数据类型转换

低精度自动向高精度进行转换(char,byte,short不自动类型转换)

char——>int——>long——>float——>double

byte——>short——>int——>long——>float——>double

int num = 'a'; //char——>int
double d1 = 80; //int——>double
System.out.println("num"); //97
System.out.println("d1"); //80.0
自动类型转换细节
//多种类的数据混合时,系统首先自动将所有数据转换成容量最大的那种数据类型,然后再进行计算
int n1 = 10;
float d1 = n1 + 1.1; //false,d1的结果是double类型
double d1 = n1 + 1.1; //true,d1的结果是double类型
double d1 = n1 + 1.1F; //true,d1的结果是float类型
int n2 = 1.1; //false,n2的结果是double类型//char,byte,short不自动类型转换,把具体数值赋值给另外两种类型时候,要判断是否在该类型的范围之内,如果是就可以
byte b1 = 10; //对
int n2 = 1; 
byte b2 = n2; //false,byte容纳不下int类型的数据
byte b3 = 1000; //false,byte的范围是-128~127//char,byte,short	三者在进行运算的时候,在计算时首先转换为int型,运算过后都会变成int型
byte b2 = 1; 
byte b3 = 1; 
short s1 = 1;
short s2 = b2 + s1; //false,s2为int型
byte b4 = b2 + b3; //false,b4为int型//boolean类型不参与数据类型的转换
boolean pass = true;
int num = pass; //boolean不参与类型的自动转换//运算表达式的结果为类型提升到操作数中最大的类型
byte b4 = 1;
short s3 = 100;
int num200 = 1;
float num300 = 1.1F;
double num500 = b4 + s3 + num200 + num300; //num为bouble
强制类型转换

强制类型转换的时候,将容量大的数据类型转换为容量小的数据类型,使用的时候要加上强制转换符号,但是也可能造成精度降低或者益处,格外注意

1.进行数据的大小从大————小,就需要使用强制转换

2.强制转换只针对最近的操作数有效,往往会使用小括号提升运算的优先级

3.char类型可以保存int的常量值,但是不能保存int变量值

int i = (int)1.9;
System.out.println(i); //1,损失精度int j = 2000;
byte b1 = (byte)j;
System.out.println(b1); //数据溢出char c1 = 100;
int m = 100;
char c2 = m; //false
System.out.println(c3); //数据溢出//下列数据能否通过编译
short s = 12; //true
s = s - 9; //false  int->shortbyte b = 10; //ok
b = b + 11; //false int->byte
b=(byte)(b+11); //truechar c = 'a'; //true
int i = 16; //true
float d = .314F; //true
double result = c + i + d; //true float->doublebyte b = 16; //true
short s = 14; //true
short t = s + b; //false int->short
String类型的转换
  • 基本类型转String类型

    将基本类型的值+“” 即可

  • String类型转成基本数据类型

    通过基本类型的包装类调用parseXX方法即可

    int n1 = 100;
    float f1 = 1.1F;
    double d1 = 4.5;
    boolean b1 = true;
    String s1 = n1 +"";
    String s2 = f1 +"";
    String s3 = d1 +"";
    String s4 = b1 +"";
    System.out.println(s1 + "" + s2 + "" +s3 + "" + s4);
    System.out.println("=========================");String s5 = "123";
    //使用相应的包装类的对应方法,得到基本数据类型
    int num1 = Integer.parseInt(s5);
    double num2 = Double.parseDouble(s5);
    float num3 = Float.parseFloat(s5);
    long num4 = Long.parseLong(s5);
    byte num5 = Byte.parseByte(s5);
    short num6 = Short.parseShort(s5);
    boolean b = Boolean.parseBoolean("true"); //如果里面的数据不为true或false,则结果返回falseSystem.out.println(num1); //123
    System.out.println(num1 + 1); //124
    System.out.println(s5 + 1); //1231
    System.out.println(num2); //123.0
    System.out.println(num3); //123.0
    System.out.println(num4); //123
    System.out.println(num5); //123
    System.out.println(num6); //123
    System.out.println(b); //true//把字符串转成字符,指的是得到字符串的首个字符
    System.out.println(s5.charAt(1));//将s5字符串中的第二个字符取出来
    

    在将string类型转换成基本数据类型时,要确保String类型能够转成有效的数据,可以把“123”转换为整数,但不能把“hello”转成一个整数,如果格式不正确的话,就会抛出异常,程序就会终止。

    练习
    //练习1:写出输出结果
    int n1;
    n1 = 13;
    int n2;
    n2 = 17;
    int n3;
    n3 = n1 + n2;
    System.out.println("n3=" + n3); //输出30
    int n4 = 38;
    int n5 = n4 - n3;
    System.out.println("n5=" + n5); //输出8//练习2:
    //1.使用char类型,分别保存\n,\t,\r,\\,1,2,3等字符,并打印输出
    char c1 = '\n'; //换行
    char c2 = '\t'; //制表位
    char c3 = '\r'; //回车
    char c4 = '\\'; //输出\
    char c5 = '1'; 
    char c6 = '2';
    char c7 = '3';
    System.out.println(c1);
    System.out.println(c2);
    System.out.println(c3);
    System.out.println(c4);
    System.out.println(c5);
    System.out.println(c6);
    System.out.println(c7);
    //2.保存两本书名,用+拼接,看效果。保存两个性别,用加号拼接,看效果。保存两本书价格,用加号拼接,看效果。
    String book1 = "狗子1";
    String book2 = "狗子2";
    System.out.println(book1 + book2);char c1 = '男';
    char c2 = '女';
    System.out.println(c1 + c2);double price1 = 123.453;
    double price2 = 120.11;
    System.out.println(price1 + price2);
    //3.编程实现如下的效果:
    //	姓名	年龄	成绩	性别	爱好
    //  xx	  xx    xx    xx    xx
    //要求:
    //用变量将姓名,年龄,成绩,性别,爱好存储;
    //使用+
    //添加适当的注释
    //添加转义字符,使用一条语句输出
    String name = "jack";
    int age = 20;
    double score = 80.9;
    char sex = '男';
    String hobby = "打篮球";
    System.out.println("姓名\t\t年龄\t成绩\t\t性别\t爱好\n" + name + "\t" + age + "\t" + score + "\t" + sex + "\t" + hobby + "\t");
    System.out.println("======================");
    System.out.println("姓名"+"\t"+"年龄\t成绩\t性别\t爱好\n" + name + age + score + sex + hobby);
    

http://www.ppmy.cn/news/412366.html

相关文章

iOS-系统相关参数(版本、机型设备等)

1、app版本号 NSString * localVersionShort [[NSBundlemainBundle]infoDictionary objectForKey:"CFBundleShortVersionString"]; 2、app名称 NSString *app_Name [[NSBundlemainBundle]infoDictionary objectForKey:"CFBundleDisplayName"]; 3、app bu…

判断机型,支持最新设备(iPhone SE Gen2 和 iPad Pro 11 Gen2、iPad Pro 12.9 Gen4)

2020-7-10 更新 ⚠️已停止维护 现已支持CocoaPods 只涉及最新的iPhone和iPad设备 Github // 导入这个框架 #import <sys/utsname.h> (NSString *)getDeviceName {struct utsname systemInfo;uname(&systemInfo);NSString *deviceModel [NSString stringWithCSt…

Android12之如何查看hidl服务(一百五十五)

简介&#xff1a; CSDN博客专家&#xff0c;专注Android/Linux系统&#xff0c;分享多mic语音方案、音视频、编解码等技术&#xff0c;与大家一起成长&#xff01; 优质专栏&#xff1a;Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; 人生格言&#xff1a; 人生…

欧洲魔法概论

欧洲魔法概论 欧洲魔法概论 古代欧洲魔法传说 2012-01-15 12:24提问者&#xff1a;匿名|浏览次数&#xff1a;716次 有没有书比较全面地描述古代欧洲魔法传说中各种咒语、魔法物品和生物的&#xff0c;最好能在深圳图书馆里找到 我来帮他解答 满意回答 2012-01-15 13:29…

LVS的DR模式(ldirectord的使用,keepalived配置高可用集群)

LVS-DR模型的特性&#xff1a; 保证前端路由将目标地址为VIP报文统统发给Director Server&#xff0c;而不是RS RS可以使用私有地址&#xff1b;也可以是公网地址&#xff0c;如果使用公网地址&#xff0c;此时可以通过互联网对RIP进行直接访问 RS跟Director Server必须在同一…

nginx配置文件中一些参数的应用

虚拟主机 vim /usr/local/lnmp/nginx/conf/nginx.confserver {listen 80;server_name www.westos.org;location / {root /www1;index index.html;} } server {listen 80;server_name www.linux.org;location / {root /www2;index index.html;} }编辑默认发布文件 mkdir /www1…

蒟蒻的做题录(时间)

总计:672道 [SCOI2016]萌萌哒 [HAOI2018]苹果树 [CTSC2008]网络管理

如何解决Fn键失灵?

Fn键是笔记本上比较重要的一个键&#xff0c;主要功能是控制触摸板等&#xff0c;所以如果Fn键失灵&#xff0c;将会造成很大的影响。那么我们要如何解决Fn键失灵呢&#xff1f;有同样疑惑的用户可以将目光下移&#xff0c;看看小编带来的具体教程&#xff01; 下面小编就以win…

计算机键盘没有fn,键盘Fn键失灵怎么解决?键盘Fn键失灵的修复方法

电脑键盘是电脑输入设备中最常用的设备之一&#xff0c;也是大家使用最频繁的的设备。其实键盘Fn键占据着很大分量,Fn键能够实现很多功能,如控制音量、打开关闭摄像头、屏幕亮度调节等。如果Fn键失灵的话,那就会对电脑造成很大的影响&#xff0c;有什么办法修复&#xff1f;下面…

计算机上fn按键,fn键设置方法

原标题&#xff1a;fn键设置方法 fn键是功能键(功能键)。如果仅按Fn键&#xff0c;则由于它是组合键而无法使用。但是&#xff0c;如果品牌不同&#xff0c;由于fn键的组合功能也不同。 1.按win x组合键&#xff0c;在管理界面中单击功能键行&#xff0c;然后将多媒体键更改为…

机械键盘恢复出厂fn_怎么切换fn恢复f1 - 卡饭网

键盘如何关闭Fn功能键恢复F1~F12 键盘如何关闭Fn功能键恢复F1~F12 [网友建议] 您可以尝试长按Fn键,如果弹出热键设置,您就可以选择传统模式或当前的模式了,您也可以进入电脑的BIOS进行调试:在BIOS设置界面,进入 "Configuration" 菜单,将"Hotkey mode"的设置…

Linux热键独占键盘,M11xR1 折腾记 ---archlinux下Fn热键控制明暗度

使用archlinux一段时间了,M11xR1在arch的wiki上有文章介绍,基本安装和使用没有什么大问题。默认开启intel显卡,会发现Fn+F4/F5,不能调解明暗度。屏蔽intel显卡,使用nvidia闭源驱动没有问题。但是为了待机的时间够长还是决定使用intel显卡,并通过xmodmap来解决热键的映射。…

键盘关闭fn键

10年7月上市的新扬天电脑所配USB键盘&#xff0c;F1-F12系统下会默认为快捷键&#xff08;功能键&#xff09;而非F1-F12实际功能。可能会导致用户在使用习惯上的不适应。 可以带用户关闭键盘的特殊功能&#xff0c;方法如下&#xff1a; 在系统下默认为功能键盘&#xff0c;…

台式机win10关闭fn热键_win10惠普怎么取消fn win10惠普取消fn的简单方法

惠普笔记本怎么不按FN键而直接实现快捷键功能&#xff1f;每次都要按fn才能实现某种快捷键的功能&#xff0c;不按行吗&#xff1f;还真行&#xff0c;下面我们一起来看看实现方法&#xff0c;需要的朋友可以参考下 系统推荐&#xff1a;番茄花园win10系统下载 惠普笔记本电脑是…

Fn键

需求分析 我想开机禁用触摸板. 方案设计 安装驱动:比较麻烦,驱动也不一定支持开机禁用触摸板.编程实现,让一段代码开机禁用触摸板 编程实现也分好几种方法: 使用windows API禁用触摸板,这需要了解windows的API.模拟键盘按键,开机就通过按键禁用触摸板.(如是你闻,这正是我想说的…

计算机键盘fn,USB键盘Fn功能键调节方法

2010年7月后上市的新扬天电脑所配USB键盘&#xff0c;F1-F12系统下会默认为快捷键(媒体功能键)而非F1-F12传统功能(实现传统功能需要配合Fn键实现)&#xff0c;此设计可能会导致您在使用习惯上的不适应。 在系统下默认为功能键盘&#xff0c;其中F1&#xff0d;F12的功能如下&a…

联想t450进入bios设置按哪个键_ThinkPad笔记本电脑如何设置Fn热键切换功能

操作步骤: 方法一&#xff1a;浮岛式键盘Fn热键切换功能 禁用Fn 锁定功能后&#xff1a;Fn 锁定指示灯熄灭。要使用每个键上印有图标的特殊功能&#xff0c;请直接按功能键&#xff1b;要使用传统的F1-F12功能&#xff0c;请按Fn键和相应的功能键。 启用Fn 锁定功能后&#xff…

神舟战神笔记本fn键调屏幕亮度失灵

型号&#xff1a;神舟战神K670D-G4D1 其他型号可百度搜索 起因&#xff1a;刚开始买的时候用的很顺畅、重装和升级win10几次之后是一直存在问题。懒得在电源选项每次调节屏幕亮度&#xff0c;百度搜索之后解决问题。 一、驱动更新没&#xff1f;可能是驱动的毛病&#xff0c;…

笔记本电脑切换Fn功能键

笔记本电脑切换Fn功能键 前言前提方法快捷键切换控制面板切换BIOS切换Lenovo Vantage切换电脑管家切换 前言 笔记本电脑的键盘首行一般会有F1-F12等功能键&#xff0c;它们可以调节电脑音量&#xff0c;亮度等&#xff0c;因此称为Fn功能键。但F1-F12都有自己的标准功能和特殊…

计算机键盘fn,键盘功能键Fn

当你拔下笔记本的外接键盘&#xff0c;用笔记本自己的键盘时&#xff0c;你是否会发现明明敲得是键盘上的字母键&#xff0c;可是却变成了数字。比如敲下图中的“K”&#xff0c;结果变成了“2”&#xff0c;变成了右下角显示橙色的字符。这种情况下&#xff0c;怎样才能恢复正…
最新文章