Java基础知识

java语言是解释型的,先编译再解释
java原生支持多线程

跨平台性 JVM:通过JAVA语言编写的应用程序,在不同系统平台上都可以运行(一次编写,处处运行),只需要安装一个java虚拟机JVM即可

JAVA两种核心机制:
java虚拟机,JVM
垃圾收集机制,GC

.java(编译)→.class→执行(各个系统执行)
Java源文件以".java"为扩展名

C/C++,有程序员手动编写代码回收(优点:能够在内存不使用时快速回收,准确高效;缺点:容易失误出现bug)
JAVA,垃圾回收是自动的,开了一个系统集线程自动去检测哪些内存不用了然后回收掉(优点:自动的,意味着不会出现忘记回收;缺点:回收不及时)

JRE:java的运行环境,jre中包含jvm
JDK:java开发工具包,里面包含jre

字符:用英文单引号括起来的单个的字母,数字,符号
单个单引号字符定义 char c=’’’;要加转义字符

引用类型String
字符串:由0到多个字母数字符号共同组成的一个串,这个串要用双引号括起来
引用类型,都可以用null作为值,也就是说可以在初始化的时候赋值为null
int i0=1;
int i1=1;
以上这种会在内存中存储两个1
String s0=“hello”;
String s1=“hello”;
这种不会在内存中存在两个“hello”,只存在1个,另一个引用
s0,s1指向的为一个内存地址
假设“hello”的内存地址为xxxx,声明s0变量时给s0赋值“hello”实际上让s0变量引用“hello”的内存地址xxxx;当我们再声明变量s1也赋值“hello”的时候,实际上也是直接把已存在的
“hello”的内存地址给s1引用
字符串可以拼接
String s2=“he”+“llo”;

在计算过程中数据类型范围小的自动转换为数据类型范围大的
char c=‘a’;//char类型的与数字类型进行计算的时候,先转换为相应的ascll码进行计算
byte b0=2;
int k=c+b0;
System.out.println(k);//k输出结果为99, a的ascll码为97

如果对负数取模,可以把模数忽略不计,但被模数是负数则不可忽略。此外,取模运算的结果不一定总是整数。
例:5%-2=1;-5%2=-1;

char类型的数据是可以做数学运算的,在做数学运算的时候把字符转化为ascll码进行计算
System.out.println(’’+\t+’’);//输出结果为93

short s=2;
s=s+3;//会报错,需要强制类型转换
如果换成 s+=3;不会报错,在使用扩展赋值运算符时,变量在参与运算时会吧结果强制转换为当前变量的类型。
int i=1;
i*=0.1;
System.out.println(i);//输出结果为0,因为i为整数类型,0.1转换为当前的整数类型为0

单个&,左边无论真假右边都计算
双个&,左边为假右边不再计算

m<<n,m2的n次方
m>>n,m
2的-n次方

public公有的,可以在类的外部使用,private私有的 只能在本类中使用
类变量(static修饰的)可以直接使用 类名.变量名

static方法不能访问非static的成员变量。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值