notepad++
了解notepad++:
其实就是记事本的升级版,免费开源。可以使得(关键词)代码高亮。
插件appexec就可以使得搭建好java开发环境
notepad++下载
下载网址:下载记事本+- 免费 - 最新版本 (softonic.com)
配置notepad++开发环境
菜单栏 -插件 -插件管理 -搜索Nppexec -安装
在安装完成后需要重启notepad++软件,然后就可以配置java开发环境
npp_saveall 保存所有的notepad中的文件
cd "$(CURRENT_DIRECTORY)定位到当前java文件所在的文件夹
java -encoding utf-8 "$(FILE_NAME)"编译当前的java文件
java “$(NAME_PAPT)”执行class文件
小技巧:代码复制当前行 Ctrl+D [java04]
Java常量和变量
什么是常量?用处?
简单理解是程序运行后不能再被改变的值的量。主要用于一些被初始化后不能被改变的值。
分类:整型常量、浮点常量、字符常量、布尔常量、字符串常量
格式:final 数据类型 常量名称=值
使用举例: final int A=1; [java05]
什么是变量?用处?
简单理解:在程序运行后,可以被再次改变的数据值的量,它是java中的基本存储单位。
变量的声明和赋值 Java中需要强制初始化
使用格式:数据类型 变量名称=值
例如: int a=222; [java06]
Java数据类型概述
Java中的两大数据类型:基本类型、复杂类型
基本类型(简单类型)
数值类型、文本类型(字符串类型)、布尔类型等
常用的基础数据类型:(数值类型指的是有符号的数据)
byte 8位 (占8位内存)(占8位二进制,2**8=256,最高位表示符号位。)(最大表示的数字是2^7=128 范围为-128~0~127)
short 16位 短整型
int 32位 整型(平时普遍使用的)
long 64位 (以上是整数数据类型)长整型
float 32位(单精度浮点数)(精度要求不高)
double 64位 (数值类型)(双精度浮点数)(小数位数更广)
char 16位 (字符类型)unicode编码
boolean 1位 (布尔类型)真假TRUE OR FALSE
复杂类型(复合类型)
在简单类型的基础上,自定义的数据类型
整数数据类型
整数数据类型:
byte 8位 -128~127
short 16位 -32768~32767 短整型
int 32位 常用 在Java中会把byte和short自动提升为int,比如输出的时候 System.out.print
long 64位 整数范围更大 长整型
简单数学绝对值函数
使用Math类的abs方法
使用格式:Math.abs(数值参数) 结果返回一个int类型的正数(Java07)
普通数据类型赋值,范围报错
byte a=-128;
byte b=Math.abs(a);
System.out.println(b);
(byte没有128,报错)
强制类型转化用法:在值的前面加个小括号,在小括号内填入需要强制转化为什么数据类型。
byte a=-128;
byte b=(byte)Math.abs(a);
System.out.println(b);
输出结果是-128(Java08)
byte a=-128;
short b=(short)Math.abs(a);
System.out.println(b);
输出结果是128
为什么byte输出结果是-128?
类似时钟原理
钟的时间显示10点,目前准确是6点,那么我们如何拨动时钟来调整时间?
逆时针旋转:10点-4 得到6点
顺时针旋转: 10点+8 得到6点
从4和8这里观察得到刚好是一圈的12小时。
这个12其实就是这个时钟算法的模(余数)。
byte类型的表示范围为-128~127 到127不够又循环回到-128
-128~127对应的二进制范围为1000 0000~0111 1111
byte类型用1字节表示,就是8位二进制,无符号表示对应的模是0000 0000 ~1111 1111(无符号数表示对应0~255,共256个数字,所以模是256)
有符号数表示1000 0000~0111 1111 共256个数,模是256
对-128进行分析
-128=0-128=0+(-128+256)=0+128=128
也可以看成补码形式的计算
-128(byte类型)=0-128=0+(1000 0000)= 128(十进制int类型)
浮点数据类型
单精度浮点型float
内存空间占32位,对精度要求不高时可以用。
双精度浮点型double(默认)
内存占64位,高精度数据类型(Java09)
默认是double类型:class java.lang.Double
小试牛刀
知PI=3.1415926,半径r=666.888,求圆面积。S=PI*r *r。(Java10)
用double结果精度较高(Java10)1397190.650562357
用floay结果精度较低(Java11)1397190.6
注意:
-
使用float类型进行赋值,那么要注意在数值后面加上f,表示这个数值是float类型。
例如: float r=666.888f;
-
float类型计算得到的结果小数点位并不精确。如果需要精确的结果,那么必须使用默认的double类型。
-
实验现象:10个0.1相加得到0.999999999999,但是0.1*10得到1.0
计算机内对于浮点数默认并不能精准表达。比如0.1在计算机内部表示为0.0999999999。(Java12)
假设,我们最终结果是与1作比较,那么我们可以采用差值法,将数据的结果比较在一个极小范围内,就代表准确。
如:1.0-0.99999999999=0.00000000001,差值小,那么我们允许这样的误差存在。