java SE学习Day2:在Linux(CentOS 7)上安装jdk,细说java数据类型转换
来源:互联网 发布:夏易seo 编辑:程序博客网 时间:2024/05/22 06:29
想借这次重学java的机会,顺便熟悉熟悉linux的操作,就在虚拟机上装了CentOS,CentOS 7自带Openjdk1.7和1.8的版本,但是在运行javac编译时却告诉我“javac:command not found”,WTF???(黑人问号)事先上网查过openjdk和sun/oraclejdk有什么不同,看了很多博客文章和问题回答,结论就是:对于现在的我,他俩哪儿不一样哪儿一样,跟我毛关系没有,我要做的就是找个能用的,那么就把这个配置过程简单的记录一下,修改教程也是借鉴了一个博客的方法,但我结合了我自己的实际安装情况改进了一些步骤。
整个过程大致分为三个系列的步骤操作:
Step 1,删除已有的openjdk
Step 2,安装oraclejdk
Step 3,配置环境变量
Step 1,删除已有的openjdk
1,打开终端,使用java -version
命令查看当前系统中的openjdk版本信息,可以看到当前系统中使用的是openjdk
2,使用rpm -qa | grep java
命令查询有关“java”的所有包,会发现除了关于openjdk的几个包以外,还有其他的包,比如python的java工具包,我们只删除带有openjdk字段的包即可,所以可以把这个命令修改一下匹配条件,改为rpm -qa | grep openjdk
,这样匹配到的就都是需要删除的东西
3,使用rpm -e --nodeps [上一步grep openjdk查询到的包名称]
命令,删除包,例如rpm -e --nodeps java-1.8.0-openjdk-1.8.0.102-4.b14.el7.x86_64
Step 2,安装oraclejdk
1,打开CentOS自带的Firefox浏览器(因为默认下载文件到~/Downloads,不想到时候换浏览器改路径麻烦,所以就用这个浏览器直接下),打开jdk下载页http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html,目前最新的是8u111和8u112,我选择8u111,首先要选择“Accept License Agreement”,然后选择jdk-8u111-linux-x64.rpm,下载,在Firefox的弹出窗口中选择save file或“保存文件”
2,下载完成,使用cd /usr/
命令来到usr目录下,我们要把jdk安装到这里,在我实际操作时,我事先在usr目录下使用mkdir
新建了一个目录作为jdk的目录,但是安装完毕后我发现并无这个必要,他会自动生成一个名为java的目录,所以不用事先自己新建目录
3,使用rpm -ivh ~/Downloads/jdk-8u111-linux-x64.rpm
命令开始安装,注意路径,因为我们下载的.rpm文件是存在~/Downloads下面的
Step 3,配置环境变量
1,使用vim /etc/profile
打开配置文件,按i键进入输入模式,在文件尾添加如下字段(如图),然后ESC键,使用:wq命令或按下Shift+ZZ保存并退出(连按两下z键),注意JAVA_HOME路径以自己为准,若当时自定义路径则按自身情况修改(注意CLASSPATH等号右边有一个” . “,并且三个jar包路径用“:”分隔):
export JAVA_HOME=/usr/java/jdk1.8.0_111 export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar export PATH=$PATH:$JAVA_HOME/bin
2,配置完成,使用source /etc/profile
命令使配置生效,确认配置是否生效,可使用echo $JAVA_HOME
回显命令查看
3,使用java -version
查看当前版本信息,你就得到你梦寐以求的jdk了!
java中的基本数据类型转换(注意是基本数据类型,后面还会学其他的类型转换)
首先来列个表格,复习一下前一节和计算机导论里面的知识
注意事项:
①整型:十六进制需加上前缀0x,八进制使用前缀0(但不推荐使用八进制,容易造成混淆),从java 7开始,支持二进制,前缀是0b;long型变量声明时,需在值后加后缀L。
②浮点型:当浮点型运算溢出时,会返回“正无穷大”或“负无穷大”两种值,当进行0除以0或开负数平方根时,会返回“NaN”值,表示运算无意义;浮点型不适用于金融计算(即禁止出现舍入误差的运算),因为浮点数无法精确表示一个数的1/10;
③字符型:可使用\uxxxx(x表示任意十六进制数字字母),来获得Unicode字符,同时还有转义序列,如:\b表示“退格”等,如今强烈建议用抽象数据类型来代替char型来表示字符数据。
④布尔型:java与C或C++不同的地方在于,0值和1值不能代替false和true来表示逻辑真假
关于数据转换:
类型按级别由低到高排序:(short,byte,char)—>int—>long—>float—>double;boolean型不得与其他任何类型进行转换,若要使用boolean的值,可使用条件表达式:boolean b = true;b ? 1:0;
来获取值
数值类型间的合法转换(取《java核心技术 卷1》中图3-1):
实箭头表示转换后无信息丢失,虚箭头表示有信息丢失
实际二元计算中,按如下规则进行计算:
STEP1:若两个操作数中有一个是double,则另一个操作数转换成double
STEP2:否则,若两个操作数中有一个是float,则另一个操作数转换成float
STEP3:否则,若两个操作数中有一个是long,则另一个操作数转换成long
STEP4:若以上情况都不满足,则都转换为int,再做计算
强制类型转换:高类型向低类型转换
语法格式:在值前加上(),()内填入你想转换的目标类型
强制转换发生溢出的例子:
public class TestConvert { public static void main (String[] args){ byte b1 = 65; byte b2 = 78; byte bover = (byte)(b1+b2);//计算结果溢出 System.out.println(bover); double d = 1.14e100; float f = (float)d; System.out.println(f);//高类型向低类型强制转换,发生溢出 int i = 123456789; float f2 = (float)i; System.out.println(f2);//信息丢失,精度降低 }}
运行结果:
-113Infinity1.23456792E8
若要对浮点数进行舍入运算,则需要调用Math.round()
方法,但仍需要强制转换成int型,因为此方法返回值为long型数值。
参考资料:
《马士兵java入门到精通》视频
《java 核心技术 卷一》
- java SE学习Day2:在Linux(CentOS 7)上安装jdk,细说java数据类型转换
- 【java】在Linux上安装jdk
- 在Linux上安装java JDK
- Java SE-(基本数据类型)类型转换
- 【JAVA SE】5.数据类型转换
- java SE JDK安装配置
- (JAVA SE 学习笔记)Java.SE.第001讲.Java.SE入门、JDK的下载与安装、第一个Java程序、Java程序的编译与执行
- javaEE开发如何在oracle官网下载安装jdk?(java SE 8u5 JDK 和 Java EE 7 SDK with JDK 7 U45的区别 )
- CentOS 7 安装Java JDK
- 在Linux上安装JDK及设置JAVA环境变量
- 在虚拟机中的Linux系统上安装Java JDK
- Java学习(1)-JDK安装及数据类型
- java SE 数据类型转换,类型提升,变量
- linux 下安装jdk 。centos系统下默认安装的openjdk,重装jdk。CentOS系统上的Java环境搭建
- Linux基本操作系列(一):在CentOS 6.8安装JDK(Java环境)
- Java学习----day2——(1)数据类型总结
- linux安装java jdk( centOS 5.4 )
- Linux(Centos)安装Java JDK及卸载
- 极光推送设置通知推送震动铃声时长
- 手动添加的RadioButton无法形成Group 怎么办啊?
- Andriod 中编译的很简单的问题
- 关于BItmap.createScaledBitmap释放内存引发的bug
- 安卓定位的问题
- java SE学习Day2:在Linux(CentOS 7)上安装jdk,细说java数据类型转换
- 锤子手机权限开启方法
- android apk签名问题
- android 如何判断手机已经安装过杀毒软件?
- android app上线
- shell编程--流程控制for,do-while,if-then,break,continue,case等
- C语言 memcpy函数(增加dst 从第一字节拷贝判断)的内部简单实现方式
- NSData无法读取文件的数据
- 如何设置屏幕的亮度?