标签:默认值 java虚拟机 异常 转义 lag 服务器 最小值 计算机 父类
java安装时需要配置环境变量:
JAVA_HOME:jdk安装路径
path:%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;
java的三大版本:
javaSE:标准版(桌面程序,控制台开发等。。。)
javaME:嵌入式开发(手机,家电。。已经放弃)
javaEE:E企业级开发(web段,服务器端)
jdk:java Development Kit(Java开发者工具)
jre:Java Runtime Environment(java运行时环境)
jvm:java Virtual Machine(Java虚拟机)
一个数在计算机是通过2进制表示的,这是机器数。最高位是他的符号位,0为正,1为负。
ex:3的机器数为0000 0011,真值是3;
-3的机器数为1000 0011.真值是-3而不是131;
负数二进制计算:反码=符号位不变,原码所有位取反;补码=反码+1,此计算方式可逆
原码就是符号位加上真值的绝对值(第一位表示符号,其余位为数值)如8位2进制:
[+1]原 = 0000 0001
[-1]原 =1000 0001
8位2进制的取值范围是
[1111 1111,0111 1111]—>[-127,128]
但是人为规定Java中byte类型是-128,127。
原因是0会有两种表示方法+0和-0(1000 0000);印度人将-0为-128。设计的非常巧妙。
对于如果大于8位的有符号整数类型,-128的补码刚好是1000 0000(计算机是利用补码计算的);
127(0111 1111)加1(0000 0001)刚好等于-128(1000 0000),而-128(1000 0000)加1(0000 0001)刚好等于-127,形成了一个闭环,如时钟。
计算机中减法运算可以换算成加法运算:如8-1=8+(-1)其补码运算为:0000 1000+1111 1111=0000 0111(整数的原反补码相同刚好是7)
而 -128+127—>为(1000 0000+0111 1111)刚好是-1(补:1111 1111)(反:1111 1110)(原:1000 0001)其中short的最小值是-32768,int最小值-(2的32次方)也是一样的道理。
其中二进制位运算跟10进制乘法除法相同
小数的二进制表示法:乘二去整
基本类型:数值数类型和boolean类型
备注:
字节(byte)类型代表:2进制的11111111
位(bit):计算机最小存储单位,字节中每个1都是1位。
1B(字节)=8bit(位)
byte占1个字节:-128—127
short占2个字节:-32768—32767
int占4个字节:-2147483648—2147483647
long占8个字节:-9223372036854775808—9223372036854775807
float占4个字节
double占8个字节
char字符类型占2个字节
boolean类型只占1位只有true和false(即0和1)
进制:
二进制表示:0b开头
8进制:0开头
十进制:正常数字
16进制:0x开头
flaot:有限的离散的,有舍入误差,接近但不等于;避免使用浮点数类型进行比较
例如:flaot f1=23123123123123;flaot f2=f1+1;
System.out.println(f1==f2);输出结果时true。
通常使用数据工具类:BigDeciml
字符拓展:
所有的字符本质还是数字,字符类型可以转化成数值类型(计算机原编码都是由01组成)
编码:Unicode编码占2个字节,通过编号标记汉字,可以处理任何语言的文字,最初时可以表示65536个字符(现已扩展)最初Excel也是最长有65536(格数)
例如:Unicode表中:a=97,A=65,字符还可以表示汉字
转义字符:\t:制表符(相当于Tab键);\n换行
布尔值扩展:
boolean flag=true;
1和2效果相同
电脑的32位和64位区别:
32位:只能用32位的CPU,最多支持4G内存
64位:能装32位和 64位的CPU,最多支持128G内存
“==”比较对象时会从内存分析内存地址是否相等
变量计算时若没有比int类型更高的数据时,其默认结果为int类型,若有则自动转 成高类型
不同数据类型需要转换成相同类型才能运算(父类子类对象的操作也一样)
数据类型等级从低到高排序byte,short,char——>int——>double——>float——>long
int i = 128;
byte b =(byte)i;//防止内存溢出,byte-128-127
当由高转到低时强制类型转换语法:(类型)转换名
当数据类型由低转到高时自动类型转换
不能对布尔值转换
不能转换成不相干的类型
转换时会存在内存溢出或精度问题
float f=3.14F;
int a=(int)f;
输出:f=3.14 a=3;
int i = 100000000;
int money = 10_0000_0000;//java7新特性,数字可以用“_”连接
int year = 20;
int total = money*year;
System.out.println(total);//结果:-1474836480,计算的时候溢出了
long total2 = money*year;
System.out.println(total2);//还是:-1474836480,计算完成默认时int类型,计算完成后才转换成long这是有问题的,不能这样操作
//正确操作如下
long total3 = (long)money*year;//将任一数据转换成long(高级别的数据类型)后所有的数据都自动转换
System.out.println(total3);
命名规范:
所有变量变量、方法、类名:见名知意
类成员变量:首字母小写和驼峰原则:moneySalary,出第一个单词外后续每个单词首字母都大写。
局部变量:首字母小写和驼峰原则
常量:大写字母和下划线:MAX_VALUE
类名:首字母大写和驼峰原则:GoodMan
方法名:首字母小写和驼峰原则:runRun();
//static修饰的变量属于类变量直接通过类名调用。
static double salary = 3333.33;
//属性:变量
int j;
//实例变量,从属于对象
//变量声明但未初始化,布尔值默认是false,基本类型默认值是0或0.0
//除基本类型,其他的默认值都是null
String name;
Demo01 d1;
//常量(constant):初始化之后值就不能变了,这是一个特殊的变量,一经声明不许改变
//常量通常用final修饰,通常用大写字母表示
final double PI = 3.14;
//main方法
public static void main(String[] args) {
//java是强类型语言所有的变量必须声明
//变量是Java最基本的存储单元z其要素包括变量名,变量类型,作用域
//每个变量都有类型,可以是基本类型或者引用类型
//变量名必须是合法标识符
//变量声明是一条完整的语句,必须以;结束;
//int a,b,c;
int a=1,b=2,c=3;//局部变量,不建议这样做,注意可读性
Demo03 demo03 = new Demo03();
System.out.println(salary);
}
//常量(constant):初始化之后值就不能变了,这是一个特殊的变量,一经声明不许改变
//常量通常用final修饰,通常用大写字母表示
final double PI = 3.14;
算数运算符:+ ,— ,* , /,%,++,——
%是模运算(求余),++自增a++即a=a+1,——自减
a++表示先赋值再计算
++a表示先计算再赋值
int a=1;
System.out,println(a++);//输出1
System.out,println(++a);//输出2
赋值运算符:=
关系运算符:>,<,>=,<=,==,!=,instanceof
返回结果是true或者false
逻辑运算符:&&,||,!
&&:逻辑与运算,相当于且也叫做短路与,两边都为真结果为真,若左边条件为假则短路不知行右边。
||:逻辑或运算,相当于或,有一边为真,结果为真
!:逻辑非运算,逻辑取反
* 位运算:&,|,^,~
* a=1010,b=0011
*a&b=0010//同是1为1
*a|b=1011//有一个是0则为0
*a^b=1001//相同为0
*~b=1100//取反
位运算符:&,|,^,~,>>,<<,>>>
//>>右移运算<<右移运算
System.out.println(2<<2);//右移2位相当于2*2*2即0010->1000
System.out.println(2>>1);//左移一位相当于2/2即0010->0001
条件运算符?:
x?y:z——>如果x为true则执行y,否则执行z
扩展运算符:+=,-=,*=,/=
a+=b表示a=a+b;其余三个也是一样的
顺序问题,第一个+号前是字符串时后续的都是拼接,不相加
int a=10,b=20;
System.out.println(""+a+b);//输出1020
System.out.println(a+b+"");//输出30
java的包机制相当于文件夹,归类管理所编写的代码
命名规则一般时公司域名的倒置:如www.baidu.com写成com.baidu.www
javaDoc命令时用来
生成自己的API文档
其参数信息一般包括:
@author作者名
@version版本号
@since知名需要最早使用的jdk版本
@param参数名
@return返回值情况
@throws异常抛出情况
命令行生成javadoc文档:
javadoc -encoding UTF-8 -charset UTF-8 +类的路径
idea 下:tools—>generate javadoc设置生成参数
标签:默认值 java虚拟机 异常 转义 lag 服务器 最小值 计算机 父类
原文地址:https://www.cnblogs.com/piaocker/p/14672603.html