java知识点01

JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。
引入Java语言虚拟机后,Java语言在不同平台上运行时不需要重新编译。Java语言使用Java虚拟机屏蔽了与具体平台相关的信息,使得Java语言编译程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。
Java虚拟机本质上就是一个程序,当它在命令行上启动的时候,就开始执行保存在某字节码文件中的指令。Java语言的可移植性正是建立在Java虚拟机的基础上。任何平台只要装有针对于该平台的Java虚拟机,字节码文件(.class)就可以在该平台上运行。这就是“一次编译,多次运行”。
Java虚拟机不仅是一种跨平台的软件,而且是一种新的网络计算平台。该平台包括许多相关的技术,如符合开放接口标准的各种API、优化技术等。Java技术使同一种应用可以运行在不同的平台上。Java平台可分为两部分,即Java虚拟机(Java virtual machine,JVM)和Java API类库。 

jvm规范:
虚拟机栈:即为平时提到的栈结构,我们将局部变量存储在栈结构中
堆:我们将new出来的结构(比如数组对象)加载在堆空间中,补充:对象的属性(非static)加载在堆空间中
方法区:类的加载信息,常量池,静态域

jdk,jvm,jre的关系:
jdk = jre + java的开发工具(javac.exe,java.exe,javadoc.exe)
jre = jvm + java核心类库

为什么要配置path环境?如何配置?
希望在任何路径下都能执行javac命令
java_home = bin的上一层目录
path = %java_home%\bin

java保留字:现有java版本尚未使用,但以后版本可能会作为关键字使用,命名标识符要避免使用这些保留字
goto,const

java命名规范:
包名:多单词组成时所有字母都小写:xxxyyy
类名,接口名:多单词组成时,所有单词的首字母大写:XxxYyy
变量名,方法名:多单词组成时,第一个单词首字母小写,第二个单词开始每个单词首字母大写:xxxYyy
常量名:所有字母大写,多单词时每个单词用下划线连接:XXX_YYY

java数据类型:
基本数据类型:整数类型:byte,short,int,long   浮点类型:float,double  字符型:char  布尔型:boolean
引用数据类型:类:class  接口:interface  数组:array([])

byte:1字节,-128~127
short:2字节,-2的15次方~2的15次方-1  
int:4字节,-2的31次方~2的31次方-1(约21亿)
long:8字节,-2的63次方~2的63次方-1
说明:声明long型变量,必须以‘l’或‘L’结尾
long l1 = 231131L
说明:short,byte,char做运算时返回值必须是int类型
自动类型提升:int可自动提升为double类型


float单精度,4字节,尾数可以精确到7位有效数字,float表示数值范围比long还大
double双精度,8字节,精度是float的两倍
java浮点型常量默认为double类型,声明float型变量,需要后加‘f’或‘F’

char:1字符=2字节  char c1 = 'a'  内部只能写一个字符,char+ 为一个加法运算
作用1.声明一个字符2.转义字符
char c5 = '\n'   换行符
c5 = '\t'  制表符

整型常量默认int型,浮点型常量默认double型
byte b = 12
byte b1 = b + 1//编译失败,不兼容的类型,1为int类型由int转为byte可能会损失 
正确形式:byte b1 = (byte)(b+1)
b1++   b1 = 11//自增1不会改变本身变量的数据类型

string类型不是基本数据类型  String s1 = "asxv"
string可以和8种基本数据类型变量做运算,且运算只能是连接运算(+)

ascll码:A:65  a:97
char c = 'a' ,int num = 10
c + num = 107

byte bb1 = 127,byte++,byte = -128

int n = 10
n += (n++) + (++n)//n = 10 + 10 + 12

比较运算符的返回值为true或false
int num1 = 12,num2 = 5
num1 / num2  =2
double result = num1 / num2 = 2.0
double result = (double)num1 / num2 = 2.4
double result = num1 / (num2 + 0.0) = 2.4

&和&&这两者都是表示逻辑与,只有当两边都是true时,返回true,只要有一个false则结果返回false。
&&还具有短路的功能,即如果第一个表达式为 false,则不再计算第二个表达式,例如,对于 if(str != null&& !str.equals(“”))表达式,当 str 为 null 时,后面的表达式不会执行,所以不会出NullPointerException
如果将&&改为&,则会抛出 NullPointerException 异常。 If(x==33 & ++y>0) y 会增长, If(x==33 && ++y>0)不会增长。
&还可以用作位运算符,当&操作符两边的表达式不是 boolean 类型时, &表示按位与操作,我们通常使用 0x0f 来与一个整数进行&运算,来获取该整数的最低 4 个 bit 位,例如, 0x31 & 0x0f 的结果为 0x01

a^b表示逻辑异或当A和B相同返回false,A和B不同返回true

位运算符:操作的都是整形的数据,<<在一定范围内,每向左移一位,相当于*2,>>相当于/2

最高效的计算方式计算2*8:2<<3或8<<2

三元运算符:结构(条件表达式)?表达式1:表达式2
条件表达式的结果为布尔类型,表达式1和表达式2的数据类型要求是一致的,三元运算符可以嵌套使用
获取三个数最大值:int max = (a>b)? a : b;
        int max1 = (max>c)? max : c;

多选一:if(){}    else if(){}    else(){}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值