001-Java学习前基础
前言
初次在博客园写博客,想通过这种方式把自己学过的东西梳理一遍,加深自己的记忆,笔记中借鉴了一些老师的笔记加上自己的整理和理解,希望大家可以多多交流学习,写的不好或者有错的地方还请大家多指正!
一、Java语言特性(简单概述)
简单性:
java语言底层采用了C++语言实现,屏蔽了指针的概念,使得程序员不需要使用 复杂的指针去操作内存,java语言中真正操作内存的是JVM。面向对象:
Java中提供了封装,继承,多态等面向对象的机制。健壮性:
C++程序当中的无用数据/垃圾需要编程人员手动释放,然而Java不用,因为在Java中引入了 自动垃圾回收机制(GC机制) ,Java 程序启动了一个单独的垃圾回收线程,时刻监测内存使用情况,在特定时机会回收/释放垃圾数据。多线程:
Java语言支持多个线程同时并发执行,同时也提供在多线程环境下的安全机制。可移植/跨平台:
Java语言只需要编写/编译一次,便可以处处运行,原因是:Java程序不是直接运行在操作系统上的,而是需要在操作系统上安装一个JVM,把Java程序放在JVM上运行,JVM屏蔽了各种操作系统之间的差异,这样就实现了跨平台。

二、JDK、JRE、JVM三者关系
- JDK:Java开发工具箱;
- JRE:Java运行环境;
- JVM:Java虚拟机;
注:
JDK包含JRE和JVM;
JVM是不能独立安装的,JDK和JRE可以;
安装JDK的时候,JRE和JVM就自动安装了;
安装JRE时,JVM也自动安装了;
三、java文件的加载与执行
- 先启动JVM;
- JVM启动后,JVM会去启动“类加载器(class loader)”,类加载器的作用就是加载类的,负责去硬盘上找“类”对应的“字节码”文件;
- 类加载器如果在硬盘上找不到对应的字节码文件,则会报:找不到或无法加载主类错误;如果找到,类加载器会将改字节码文件装载到JVM中,JVM启动解释器将字节码解释为“10101000......”这种二进制码,操作系统执行二进制码与硬件进行交互;

001-Java学习前基础的更多相关文章
- Java学习前的一些准备
1.JDK - (Java SE Development Kit) JDK是Java开发所需要的环境,就跟我们想玩某个网游一样,玩之前一定是需要先安装相应的程序包的.那这个JDK就是我们准备登陆Jav ...
- JAVA学习前十天:小结、面向对象之”扑克牌“例子
2016年4月26号正式步入JAVA学习课堂,学习了第一节JAVA课程,由于以前有C语言基础,所以课程有点快! 第一天:学习了教材的第一部分,第一部分总共两章,分别是JAVA简介和JAVA基础语法. ...
- Java学习笔记-基础语法Ⅳ
多态:同一个对象,在不同时刻表现出来的不同形态 例如: 猫 cat = new 猫(); 动物 animal = new 猫(); 这里的猫在不同时刻表现出来不同的形态,这就是多态 多态的前提和体现: ...
- Java学习---面试基础知识点总结
Java中sleep和wait的区别 ① 这两个方法来自不同的类分别是,sleep来自Thread类,和wait来自Object类. sleep是Thread的静态类方法,谁调用的谁去睡觉,即使在a线 ...
- Java学习日记基础篇(六)—— 抽象类、接口、final
抽象类 为什么要有抽象类? 因为父类方法有不确定性,我们在Animal中定义了一个方法,但是它会被子类的方法覆盖掉,我们就不知道这个方法原本是做什么的 public class test1 { pub ...
- Java学习路线-基础篇!
下面以黑马程序员Java学院的学习路线为例,进行一次史无前例的剖析,我会采取连载的形式,细致的讲解零基础的人怎么学习Java.先看下Java在基础阶段的知识点路线图. 内容多吗?不要被吓到了,知识点剖 ...
- JAVA学习总结-基础语法
/** * 这篇文章供自己学习JAVA总结回顾使用 * 主要借鉴了马士兵老师的视频进行总结 * @author Kingram */ 标识符的概念和命名规则 JAVA常量---不可变的变量 程序的执行 ...
- Java学习日记基础(五)——类、对象之this、静态变量(类变量)、静态方法(类方法)、四大特征
this 赵本山问奥尼尔:“我的爸爸的爸爸是谁?” 奥尼尔:“不知道” 赵本山:“你傻啊,是我爷爷” 奥尼尔回去问科比:“我的爸爸的爸爸是谁?” 科比:“不知道” 奥尼尔:”你傻啊,是赵本山的爷爷“ ...
- Java学习日记——基础篇(二)基本语法
变量 变量和常量是程序处理的两种基本数据对象,变量是程序的基本组成单位 变量的目的就是确定目标并提供存放空间 public class Hello { public static void main( ...
- Java学习笔记-基础语法Ⅴ
学习一些Java常用的API Math:包含执行基本数字运算的方法 如果没有构造方法,一般类的成员都是静态的,通过类名可以直接调用 Java中有两种random函数,Math.Random()函数能够 ...
随机推荐
- MBP 屏幕分辨率 All In One
MBP 屏幕分辨率 All In One screen size bug https://stackoverflow.com/questions/65462643/how-to-get-the-rea ...
- CURL & Weather
CURL & Weather https://wttr.in/ $ curl wttr.in https://github.com/chubin/wttr.in refs http://www ...
- three.js all in one
three.js all in one https://www.npmjs.com/package/three # yarn add three # OR $ npm i three https:// ...
- brew & apply2files bug
brew & apply2files bug Error: Permission denied @ apply2files - /usr/local/lib/node_modules/npm/ ...
- robots.txt
robots.txt A robots.txt file tells search engine crawlers which pages or files the crawler can or ca ...
- Array in Depth
Array in Depth Array.concat() & Array.push() https://developer.mozilla.org/en-US/docs/Web/JavaSc ...
- C-Sharp 调用命令行
https://stackoverflow.com/questions/1469764/run-command-prompt-commands 带控制台 string strCmdText = &qu ...
- 「NGK每日快讯」2021.2.11日NGK公链第100期官方快讯!
- NGK Global-下一个千亿市场来袭
6月4日,NGK Global开启了全球巡回路演,NGK全球社区经过激烈的讨论,最终决定由美国社区发起,在纽约举办NGK Global第一场路演. 路演讲师Viko就NGK的IPFS协议以及NGK未来 ...
- 一款基于 Web 的通用数据管理工具(转载)
一款基于 WEB 的通用数据管控工具 - CloudQuery 前言 前段时间,公司因为业务发展,数据量攀升,老板迫切需要一个工具对数据进行精细化管理,一是确实需要精细化管理:二是因为我们公司小,数据 ...