Java学习-基础知识

从Java 核心–JVM说起

java运行在java虚拟机上,通过java虚拟机控制计算机完成程序的功能
java虚拟机(Java virtual machine):JVM
1)JVM:读取并处理编译过的字节码文件class
定义了:指令集、寄存器集、类文件结构、堆栈、拉架收集堆、内存域
2)code security
3) garbage collection

javac 编译
java运行
java运行
java运行
java运行
source.java
source.class
JVM for Doc
JVM for Winx
JVM for Unix
JVM for Other

JRE的主要功能:

java运行环境(Java runtime environment ):JRE=JVM+API
1)加载代码:由class loader完成
2)校验代码:由bytecode verify完成
3)执行代码:由runtime interpreter完成
API:牛逼的前人写好的牛逼的接口工具

JDK主要功能:

java开发环境JDK=JRE+tool
java 编译器:javac.exe
java执行器:java.exe
文档生成器:javadoc.exe
java打包器:jar.exe
java调试器:jdb.exe
2014年发布了jdk1.8,也叫java8,改进非常大最主要的是lambda的使用

java特点:

1)面相对象
2)因为jvm所以可以跨平台
3)安全稳定-1)代码安全检测(code security)2)自带内存回收garbage control
4)支持多线程–后续体验

java中的主要基本概念

对象:object

是客观世界的一个主体,是计算机中的一个可标识的区域;

类:class

将对象抽象出来的模板,包括属性(变量)和行为(方法)

属性
变量-字段field
行为
函数-方法method

类:
class Person{
int age;
String name;
void sayHello(){…}
}
对象:
Person p = new Person();
类和对象的关系:
类是对象的抽象;
对象是类的实例;
类和对象都称为“对象”,为了明确,对象一般称为对象实例

面相对象变成的三大特点:

1)封装
要点:private 需要通过接口才能访问,可以做限制;
class Person{
private int age;
public int getAge(){return age;}
public void setAge(int a){age=a;}
String name;
void sayHello(){…}
}
2)继承
父类:
class Person{
int age;
String name;
void sayHello(){…}
}
子类:
class Student extends Person{
String school;
double score;
void meetTeacher(){…}
}
3)多态
不同的对象收到同一个消息可以产生不同的效果,实现的细节有接收对象自行决定;
这个没理解透彻,后面看吧,是不是通过this实现的?

面向对象编程的方法论:

1)总结、归纳、抽象出有哪些对象类,这个是要在写程序前就思考好的;
2)每个类从属性和行为两方面思考,有哪些属性?(变量)会有哪些行为?(方法)有点类似于C里面的结构体
3)类是否分层次?父类、子类、继承关系是啥?有没有关联,任何一个稍微复杂的事情都会面对不同的对象,将对象解耦拆分、分层是很重要的,决定了后面程序的优雅程度;
4)对象之间需要发生哪些动作?(调用方法)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章