初学Java
Java第一课
1、 应用如何于操作系统打交道: API
驱动:硬件厂商写的,方便别人使用
2、 问题和原理
问题
同样的程序,在linux上可以允许,win上就不能运行
作为一家公司不知道客户会在哪个操作系统平台使用公司的软件产品,能不能把一套软件产品可以让它在任何系统平台上使用,给客户现场安装,写指导书,但都不能解决win平台的软件不能在linux上运行的问题,即软件只能在某个单一平台运行
解决方案
JVM虚拟机,解决了平台差异化,但是牺牲了效率(虚拟机性能差)
vos指针对别人写好的程序,继续优化,在vm用Java语言编写,操作系统之间的隔离性,在Java优化的vm上,只能运行Java语言编写的程序,Java语言是运行在虚拟机上,注定了它至少比C慢一拍,
但是硬件的发展把Java推上了榜首
1、 过去
过去的电脑128m/256mb的内存。
Java特点:占内存大,资源多。
例子,同样的程序,Java写占用128m,C可能是30m。
Java 9000工资
C 12000工资
2、现在
随着硬件的发展,内存变得廉价,成本偏向于Java写的程序。
内存扩容比原来扩大了至少40倍。
过去的劣势不再是劣势,但是优势依然是优势。
Java的效率十分惹眼,擅长于解决高并发。
优势变大,劣势变小。
配合JVM知识点食用。
JVM:全称Java虚拟机,本质是跑操作系统的镜像,不具有跨平台特征
在win上的JRE和JVM,是针对win的,不能给linux使用。
所以一般发布了三套JRE、JVM给三个操作系统平台。(mac win linux)
比如你在win写了个docx,跑到linux运行。成功。
运行的不是这个文件,而是运行了打开这个文件的工具。
因此我们编写Java程序的时候要装JDK(Java开发工具)
JRE:Java运行时环境,不能支持开发,可以运行
JDK:Java开发者工具
配置JDK
若不报错,则配置成功
SE:标准式开发
- Java
JAVA的程序,必须是一个完整的class,或者interface
1、类型定义的法律:只允许大小写字母,数字,下划线,美元符号作为类名合理部分存在,其他内容的出现会导致错误
2、不允许以数字开头,不允许有全数字的类名
编程规范:道德:
1、类名遵循大驼峰命名法
2、类中尽量少出现数字,下划线和美元符号
3、不要使用中文作为类名
4、类名最好不超过15个字符,如果单词长度过长,使用缩写
截断符
{}:
代表将多行代码,统一成一个代码块,以 { 开始统计,以 } 结束统计
;:
代表一行代码的结束,如果之前的内容不是,那么就应该以";"结束这一行
被public修饰的类,类名要和文件名一致
一个文件里面只允许出现一个public类,也可以不出现public类
但是没有被public修饰的类,符合命名规则起啥名都行,和文件名相同都可
整形: byte short int long
byte
2^7-1
short
2^15-1
int
2^31-1
long
2^63-1
但是如果被public修饰的类名和没有被public修饰的类类名一致,报错:类名重复
javac 文件名.java
得到.class文件
java 类名(无后缀)
Java属于编译解释性语言/Python属于解释性语言
编译
把.java文件翻译成.class文件
变量
局部变量
声明在方法里面的变量,变量名就是标识符,变量的声明需要符合一定格式
局部变量在使用之前必须赋值
对于变量的使用过程,必须先声明在使用,如果是局部变量,还需要一个赋值的过程,同时我们有一个在声明的同时赋值的过程,其格式:标识符 = 字面量;
类型
Java之所以被称为语言,是因为它和其他的自然语言很相似,我们去了解一下自然语言,比如说,英语
如果局部变量和成员变量重名了,那么以局部变量优先为主
虚拟机执行
虚拟机包含内存和cpu(模拟)
虚拟机内存五大块
程序计数器
不具备存储功能,确定当前的代码执行到了第几行
虚拟件栈
栈在计数器的配合下工作
本地方法栈
堆
方法区method