Java初认识--基本数据类型(int 和byte之间赋值)默认值 类型强转
Java简单介绍
Java面向对象:一个面向对象的木匠关心的制作的椅子;这个木匠干了什么事情
非面向对象的木匠关心的是所使用的工具。
狗吃粮 面向对象
吃狗粮 非面向对象
Java与c++区别:
1.简单性:没有指针,头文件,结构,联合、操作符重载(operator) 虚基类等。
2.面向对象:都是面向对象,但是java没有多继承,但是接口可以实现多继承,Java提供了运行时自省功能。(什么是与运行时自省功能)
3.健壮性:
4.安全性:防范常见的各种攻击
5.可移植性:基本数据类型的大小以及有关运算都做了明确说明。Java中int永远是4字节(32)位,而在C++中int 可能是2字节或4字节,也可能是编译器指定商指定的其他大小,在Java中,数据类型具有固定的大小,消除了代码移植时存在的问题。
6.多线程
7.动态性:与c++相比功能具有动态性,它能够不断适应发展的环境,库中可以不断添加新方法和实例变量,而对客户端没有影响。
发展史:Java语言起源于1991年Sun公司的Oak项目,1995年正式命名为java
1996年1月 Java1.0发布,提供了可解释执行的Java虚拟机。
1997年2月Java1.1发布,反射,接口,类的关系
1998年12月 Java1.2 使用Just in time编译技术,语言的可迁移性好执行效率最优,Collections集合类设计优良
2006年Java 6 ,Java开源
2009年Oracle收购Sun公司
2014年,Java8 Lambda表达式。函数式编程能力。
Java是一门半编译,半解释型语言。先通过javac编译程序吧源文件进行编译,编译后生成的.class文件是由字节码组成的平台无关,面向JVM的文件,最后启动Java虚拟机来运行.class文件,此时JVM会将字节码转换成平台能够理解的形式来运行。
主类和主方法
Test.java–是源文件,源文件必须与主类名(public class )保持一致,一个源文件只能有一个主类 ,主方法存在与主类中。
Test.java 源文件
主类:public class Test
主方法 : public static void main(String[] args)
Java程序编译–执行流程
编译:javac Test.java —>Test.class(二进制文件)(若程序中出现中文,可以加上 -encoding UTF-8)
解释:java Test(主类名称)
命令行向主方法传参 java 主类名称 参数1 参数2 (参数1是args[0],参数2是args[1])
JDK JRE
JDK:java开发工具包,包含JRE,多了编译器javac 以及调试工具 JConsole、jstack,针对java程序员;
JRE: java运行时环境,包含JVM以及Java核心类库,是运行Java程序的环境,针对使用Java程序的客户;
JVM: java虚拟机,(Java移植性的关键)
标识符:数字,字母,_、$,不能以数字开头,不能是关键字。
数据类型
int
在java中,任何一个整型常量都是int类型。
整型溢出:
public class Int
{public static void main(String[] args){//int 的包装类是Integerint maxValue=Integer.MAX_VALUE+1;//整型最大值+1,会溢出int minValue=Integer.MIN_VALUE-1; //整型最小值-1,会溢出System.out.println(maxValue);System.out.println(minValue);}
}
到达整型最大值或最小值后,需要转换数据类型:
int maxValue=Integer.MAX_VALUE;int minValue=Integer.MIN_VALUE; long max=maxValue+1;long min=minValue-1;System.out.println(max);System.out.println(min);
结果依然是溢出,是因为执行顺序是从右向左,右边是int类型相加,这时已经溢出,那么max里存的就是溢出值。
解决方法如下:
long maxValue=Integer.MAX_VALUE+1L; //int 和long相加,int会自动提升成long
long minValue=(long)(Integer.MIN_VALUE-1); //强转为long
Java中小的数据与大的数据做数值运算,小的数据类型会自动提升为大的数据类型,当把I(int)声明为long(在数字后加L或l,但推荐使用L,如num=11+1l=12,而不是22,推荐写成11+1L,不容易造成混淆)。
在java中,大的数据转换为小的数据,必须强转,但会造成数据丢失。
long num = 2147483648L;
int result = (int) num; //需要强转
int 和byte
//整型常量在byte范围内byte a=120; //byte取值范围是 -128-127System.out.println(a); //120//整型常量不在byte范围内--》需要强转//byte b=130;// 错误(从int转换到byte可能会有损失)byte b=(byte)130; //强转为byteSystem.out.println(b); //-126 byte c=(byte)300;System.out.println(c); // 44 取的是300的低吧8位即44//整型变量--》需要强转int num=12;//byte d=num; //错误(从int转换到byte可能会有损失)byte d=(byte)num;System.out.println(d); //12
整型常量若在byte类型的保存范围内,可以直接赋给byte变量,不用强转;
整型常量若不在byte类型的保存范围内,必须强转;
整型变量无论值是否在byte范围内,都需要强转;
上述只限于int 和byte。
对于int 和byte取值范围可参考这篇博客:https://blog.csdn.net/sophia__yu/article/details/81143145
默认值
在最上面一张图,有各个类型变量的默认值,但是默认值需要结合类来观察,主方法中变量必须先赋值再使用,在主方法中不存在默认值否则会报错;
public class Int
{public static void main(String[] args){int value; //错误System.out.println(value);}
}
解决办法如下:
public class Int
{int value;public static void main(String[] args){Int i1=new Int(); //需要结合类来看System.out.println(i1.value); //0 }
}
Java初认识--基本数据类型(int 和byte之间赋值)默认值 类型强转相关推荐
- C的无符号数据类型int,short,byte 转为 Java对应的数据long,char,short
//从网络中读取C的无符号int,short,byte字节数组,相应转换成java的long,char,short short anUnsignedByte = 0; char anUnsignedS ...
- Java kafka producer 的常用参数的意义说明及默认值
生产端核心参数 1. acks 参数说明:这是一个非常重要的参数,表示指定分区中成功写入消息的副本数量,这是Kafka生产端消息的持久性(durability)保证.只有当leader确认已成功写入消 ...
- *java* 在Java中给Int类型的最大值+1 ,以及int与byte之前强转的例子
1.给int最大值+1 public class Test1{public static void main(String[] args){//保存当前int的最大值,同理也有long maxValu ...
- java final char_java基本数据类型总结 类型转换 final关键字的用法
java基本数据类型总结 Java数据类型总结 数据类型在计算机语言里面,是对内存位置的一个抽象表达方式,可以理解为针对内存的一种抽象的表达方式.接触每种语言的时候,都会存在数据类型的认识,有复杂的. ...
- Java默认值规则——各种数据类型的初试值是什么?
默认值规则指的就是不给变量赋值时,它自己初始化为默认值,不同数据类型默认值不同具体如下表所示: 数据类型 默认值 boolean false char " "(空格) byte 0 ...
- 关于Java八种原始数据类型
关于Java八种原始数据类型 Java八种原始数据类型 int类型 八进制 十六进制 浮点数类型 布尔类型 字符类型 Java八种原始数据类型 Java中的原始数据类型一共有八种,分别为byte(8b ...
- 教妹学Java(九):一文搞懂Java中的基本数据类型
大家好,我是沉默王二,一个和黄家驹一样身高,和刘德华一样颜值的程序员.本篇文章通过我和三妹对话的形式来谈一谈"Java 中的数据类型". 教妹学 Java,没见过这么有趣的标题吧? ...
- Java基本数据类型默认值和取值范围详解
Java基本数据类型有哪些?Java中的基本数据类型有,byte.short.int.long.float.double.char和.boolean这些,接下我们来了解一下它们的默认值和取值范围是怎样 ...
- JAVA八种基本数据类型+三种引用数据类型
一.Java八种基本数据类型 在程序设计中经常用到一系列类型,把它们存储在堆栈中,加快程序的运行效率,它们就是基本数据类型.Java提供了8中基本数据类型,分别是:boolean.char.byte. ...
最新文章
- linux的QQ浏览器里微信,移动端微信内置浏览器(或QQ浏览器)无法识别onclick事件的问题解决...
- python日志输出到屏幕,python日志写入文件
- R语言导入SPSS文件实战
- golang mysql 基本操作
- JVM 调优实战--一个案例理解常用工具(命令)
- 彻底掌握动态规划,第一节
- linux怎么修改bash,Linux操作系统中如何对Bash变量内容修改?
- HTTPS反向代理嗅探
- oraclemt 无法启动服务_调整MT后台 解决站点压力问题
- Dr.Cleaner pro for mac(系统清理和优化软件)
- 从 0 到 1000+ 台服务器监控的构建之路
- watir_WatirMaker简介-录制基于Ruby的Watir
- 2019/12/9 K60单片机学习
- mysql文件上传漏洞_文件上传漏洞
- c++链表——银行账户管理系统
- 我的世界服务器无限重启怎么办,iPhoneX无限重启怎么办?iPhoneX无限重启解决一览...
- wrcoef2函数_二维离散小波变换函数使用总结
- ubuntu 登录界面卡死解决方法
- 聚类标准误(cluster standard errors)是什么,什么情况下需要聚类,控制了固定效应(fixed effect)还需要聚类吗?
- 解决iframe框架onload方法不加载的问题