一种面向对象的语言
一种平台无关的语言,必须程序运行的解释环境
一种健壮的语言,吸收了C/C++语言的优点,但是去掉了影响程序健壮性的部分,例如指针、内存的申请与释放等。
典型的应用场景:互联网环境
1、使用临时变量,Java要求必须是先定义后使用,必须是先赋初值后使用
int k;//Java是一种强类型编程语言,临时变量要求先定义后使用,必须先赋初值后使用 systm.out.print7n(k);
2、目前的要求:将所有的程序都必须写在方法内部,不能写在方法外
public class ForTest{
int res=0;
for(int k=1;k<101;k++){
res+=k;
}
system.out.println( "1+2+3+...+100="+res) ;
}
Java的三种核心机制
Java虚拟机JVM
Java虚拟机可以理解成一个以字节码为机器指令的CPU
对于不同的运行平台,有不同的虚拟机
Java虚拟机机制屏蔽了底层运行平台的差别,实现了“一次编译,到处运行”
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OCqiGiTw-1635515613635)(C:UsersAdministratorAppDataRoamingTyporatypora-user-imagesimage-20211028214554216.png)]
垃圾收集机制gc 不再使用内存空间回收——垃圾回收
在C/C++等语言中,由程序员负责回收无用内存
Java语言消除了程序员回收无用内存空间的责任,它提供了一种系统级线程跟踪存储空间的分配情况,并在JVM的空闲时检查并释放哪些可被释放的存储空间
垃圾收集在Java程序原型过程中自动运行,程序员无法精确控制和干预
字母(Unicode编码字符集)、数字、下划线和$符构成,不允许数字打头
不允许使用保留字(goto const)和关键字(public class static…)
长度没有限制
类名首字母大写,大写字母分词建议名词
方法名称首字母小写,大写字母分词
变量名称首字母小写,大写字母分词
包名称全小写,使用域名反转的方式定义yi
javac Hello.java[源代码文件名称]编译,将源代码转换为虚拟机可以识别的中间性质语言,一般生成一个同名的后缀为class的文件【二进制文件,字节码文件】,这里就是跨平台的原理
java Hello[类名称,就是源代码中class关键字后面所跟的名称]一般是解释执行字节码文件
system.
out.
println
(“Counted " + count + " chars.” );
同时也允许将多行代码写在一行上,注意使用分号隔开。所有的语句末尾以分号;收尾
目前的要求:将所有的程序都必须写在方法内部,不能写在方法外使用临时变量,Java要求必须是先定义后使用,必须是先赋初值后使用
Java标识符标识符可从一个字母(Unicode编码字符集)、下划线_或美元符号$开始,随后也可跟数字、字母、下划线或美元符号。
标识符是区分大小写,没有长度限制,可以为标识符取任意长度的名字
标识符不允许使用保留字。关键字对Java编译器有特殊的含义,它们可标识数据类型名或程序构造construct名, java语言中的保留字均用小写字母表示
变量是Java程序中的基本存储单元,它的定义包括变量名、变量类型和作用域几个部分例如int k=100;其中int是数据类型,k是变量名m
变量名称:在一个方法内部不允许出现多个同名称的变量
变量类型:
Java属于强类型编程语言,变量类型一旦声明,则不能进行修改
数据类型可以决定变量所需要的存储空间大小和对应的处理逻辑
int k;声明一个变量,类型为整形,变量名称为k int k=100;声明变量的同时进行初始化 k=12.345;语法错误,因为已经声明了类型为整形,但是12.345不是整数 d=123;语法错误,因为Java语法要求对于变量必须是先定义后使用
作用域是指变量的有效范围,一般是在所在花括号范围内
public static void main(string[] args){
system.out.println(k);//错误1:要求临时变量必须是先定义后使用,必须是先赋初
值后使用
int k=100;
system.out.print1n(k);
system.out.print1n(k);//错误2:因为k定义在好内部,所以k只在上面的分为内有效,离开了则失效,{}外引用k则报错
}
pub1ic static void main(string[] args){
int k=99;
{
system.out.print1n(k);
int k=100;//错误:因为Java是强类型编程语言,所以在外已经声明了k的类型,在k的有效范围内不允许重新声明
system.out.print1n(k);
}
system.out.print1n(k);
}
JAVA是强类型语言
每个变量有类型,每个表达式有类型,而且每种类型都是严格定义的
Java编译器对所有的表达式和参数都要进行类型相容性的检查,以保证类型是兼容的
任何类型的不匹配都将被报告为错误而不是警告。在编译器完成编译以前,错误必须被改正过来
在Java语言数据类型可以分为两大类:基本类型和引用类型
基本类型(原生类型)基本类型是指不能再分解的数据类型,其数据在函数的调用中是以传值方式工作的。简单数据类型代表单值,而不是复杂的对象
Java是完全面向对象的,但简单数据类型却不是,它们类似于其他大多数非面向对象语言中的简单数据类型。这样做的原因是出于效率方面的考虑。在面向对象中引入简单数据类型不会对执行效率产生太多的影响。
Java编程语言有八个原始数据类型,可分为4种整型、浮点数、字符型数据和布尔型数据,不会随着计算机类型而变化的,注意Java具有平台无关性,所以不论硬件平台是什么,1B都是8位
java中的数据采用的是补码的存储方式
byte:1B(8b):-128到127
byte k = 100;//语法正确100在指定范围内 byte kk=130;//语法报错,因为超出限制 //这里的面试点在常量池
short:2B:-32768到32767
int:4B:-2147483648到2147483647
long:8B:-9223372036854775808到9223372036854775807
十进制整数。如123,-456,0
八进制整数。以0开头,如0123表示十进制数83,- 011表示十进制数– 9。
十六进制整数。以Ox或OX开头,如0x123表示十进制数291,- OX12表示十进制数– 18
二进制整数,以Ob或OB开头,例如0b10110010
整数类缺省为int类型,如在其后有一个字母“I或者L"表示一个long值
在Java中浮点数无法精确存放,除非使用BigDecimal
float:4B:1.4E-45到3.4028235E38保存7-8位有效数据
double:8B:4.9E-324到1.7976931348623157E308保存15-16位有效数据注意:浮点数无法精确存放
==错误,Math.abs(a-b)<1e-6
表示方法:
十进制数形式。由数字和小数点组成,且必须有小数点,如0.123,1.23,123.0
t:4B:1.4E-45到3.4028235E38保存7-8位有效数据
double:8B:4.9E-324到1.7976931348623157E308保存15-16位有效数据注意:浮点数无法精确存放
==错误,Math.abs(a-b)<1e-6
表示方法:
十进制数形式。由数字和小数点组成,且必须有小数点,如0.123,1.23,123.0
科学计数法形式。如:123e3或123E3,其中e或E之前必须有数字,且e或E后面的指数必须为整数



