pgsql中float4导致java程序精度丢失_Java基础知识 - 今天我就学习

之前学习过程中没有记笔记,总感觉基础不扎实,欠的债得还啊... ...
一点一点更新出来吧,基础还是很重要的。
写这些是为了以后能有个方便查找的资料,顺便看看能不能养成个写博客的好习惯

面向过程部分

第一个程序

记事本写java:

  1. 新建文本文档,里面写好代码
  2. 修改文件后缀名为.java(如果看不到后缀名要设置出来,否则无法更改文件格式,设置方法不赘述)
  3. 在源文件目录下运行cmd,运行javac 文件名.java,把源文件编译为.class字节码文件
  4. 运行java 文件名,则可以开始运行程序,此处不加.java后缀

注意:

  • 一个.java文件里可以有很多类,但是只能有一个public类
  • 源文件名要和public类名一致
  • 一个源文件里有多个类,编译完之后就会有多个字节码文件

常见BUG

  • 找不到文件:文件名写错了,或者文件路径不对,还可能配置过ClassPath的环境变量

变量

一、变量

  1. 变量必须先声明、初始化,再使用
  2. 变量要在其作用域内才能使用

二、变量分类

95ba2d51b910212fa46e7a254f434652.png

整型 byte、short、int、long
类型占用存储空间表示范围
byte1字节=8bit-128~127
short2字节-215~215-1
int4字节-231~231-1(约21亿)
long8字节-263~263-1

注意:

  • 声明long类型的变量时,必须要在变量结尾加lL,推荐大写
  • 通常使用int表示整型数据
  • 整型数据使用常量赋值时,默认此常量是int类型
浮点型 float、double
类型占用存储空间表示范围
float4字节-3.403E38~3.403E38
double8字节

注意:

  • float类型在声明时,要以fF结尾
  • float类型精度和表示范围都不如double,所以一般使用double类型
  • 浮点类型使用常量赋值时,默认此浮点数是double类型

提问:float和int同样都使用4字节,为什么float比int表示范围大很多?

答:因为浮点类型使用一部分空间表示数值大小,使用另一部分表示是10的几次幂,所以表示范围大,相应的它的精度也就没有那么高。

字符型 char (1字符 == 2字节)
char c1 = 'a'; // 使用单引号,里面只能写一个字符,中文日文什么的都可以,因为java使用的UTF-8字符集
char c2 = 96; // 可以使用编码
char c3 = '\n'; // 转义字符
char c4 = '\u0043'; // Unicode编码:C
布尔类型 boolean(true false)
  • 只有两个值true或false,1、0什么的不能代表
数据类型转换(重点,不包含boolean类型的计算)
自动类型提升

​ 结论:容量小的类型和容量大的类型做计算时,结果会自动转换为容量大的类型。

byte、char、short --> int --> long --> float --> double

特别的:

  • char类型也可以当作整型做运算。
  • 有byte、char、short参与的整型运算,运算结果会上升为int类型,为了防止运算结果的溢出
强制类型转换
// 注意这种编码情况
long l1 = 123456; // 不报错,默认123456是int类型,相当于是自动类型转换
long l2 = 123141541541412; // 编译不通过:过大的整数,因为后面的常量超过了int类型表示范围
long l3 = 123141541541412L; // 可以,显示地把常量指定为long类型

//***********
float f1 = 12.3F; // 必须得加F,否则报错

说明:这里的容量指的是该类型所能表示的数值的范围,而不是占用的磁盘空间。

String 字符串类型
  • String是一个类,字符串是引用类型。
  • 定义字符串,使用""包含字符串内容
  • 字符串可以和其他8中基本数据类型做运算(这里开始包括boolean类型),只能作连接运算:+。运算结果仍然是String

运算结果:表达式从左向右看,看+左右的数据类型,只要有一个是String,其运算结果就是String

// 要求在控制台打印出*    *
("*    *"); // 可以
('*' + '\t' + '*'); // 不可以,* \t 是char类型,会作整形运算,结果是整数
('*' + "t" + '*'); // 可以
('*' + '\t' + "*"); // 不可以,道理同上

String str = 4; // 不可以
String Str1 = f + ""; // 可以,打印结果是""
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值