毛头小子初学Java
毛头小子初学Java
争取每日一更。初学者,所以笔记记得有不合理之处还望各位大佬看文章后给出宝贵的建议,大宝在此谢谢各位!
1.1Java 语言的历史与特点
What is Java?
Java首先是一种编程语言
它是一种面向对象的编程语言(oop)
它的语法与c和c++语言极为相似
Java所用的语法十分简单
Java的特点
简单易学(呵。。。呵呵。。呵呵呵)
面向对象(跨平台)
平台无关性
安全稳定
支持多线程
提供了丰富的类库
易头秃(开个玩笑)
Java提供类以满足网络化、多线程、面向对象系统的需要
语言包(package)
实用程序包
I/o包
网络包
图形用户界面包(windows用户界面包)
More。。。。
Java与c++的对比(java 是c+±-·
1.无直接指针操作
2.自动内存管理
3.数据类型长度固定
4.不用头文件
5.不包含结构和联合
6.不支持宏
7.不用多重继承
8.无类外全局变量
9.无 goto(没有绝望)
Java的三种核心机制
1.Java虚拟机(Java virtual machine)
2.代码安全性检测(code security)
3.垃圾收集机制(garbage collection)(内存能够自动管理)
Java程序的编译与运行
源程序:什么什么。Java(文本文件)
源程序经过编译称为javac、C语言文本文件叫cc
经过Javac编译以后生成的目标文件(结果文件)叫class文件(类文件)
类文件里边有一些字节码(目标代码)(bytecode)
字节码并不是实际机器的最终执行码,他自己定义一套规则(就是这里边的一系列指令与这个领域平台无关,被称为Java的虚拟机指令。
目标代码(字节码)(bytecode)运行程序要使用Java的命令,需要Java命令调用虚拟机,(虚拟机:在系统(Windows,Linux)的具体的基础之上运行代码的中介)运行代码,最终转化成系统(Windows,Linux)上的代码。
C/C++直接编译成具体平台CPU的指令而Java是先变成与平台无关的指令然后用具体的虚拟机去执行。
虚拟机就相当于系统再建立一套程序
Java虚拟机(Java virtual machine)
定义:在一台计算机上由软件或者硬件模拟的的计算机。
Java虚拟机(JVM)读取并处理经编译过的字节码class文件
Java虚拟机规范定义了:
指令集
寄存器集
类文件结构
堆栈
垃圾收集堆
内存区域
Java运行环境(JRE):
JRE(the Java runtime environment):由虚拟机装载程序并调用相应的指令来具体执行。
JRE=JVM(虚拟机)+API(lib/编程的库)
JRE运行程序时的三项主要功能:
加载代码:由class loader完成:()
效验代码:由bytecode(目标代码、字节码)verifier‘完成。(保证代码安全)
执行代码:由runtime interpreter完成、(解释与执行)
理解
1. 为何Java是跨平台的?
答:由于class文件是与平台无关的,只需把class文件,放到不同的系统就能有不同的虚拟机来执行,所以Java程序是可以跨平台的
2. 为何Java是安全的?
答:Java里边有代码的自动校验过程(bytecode verifier)
Java自动垃圾回收技术
- 垃圾回收(garbage collection、gc)
- 在C/C++等语言中由程序员负责回收无用内存
- Java语言自动垃圾回收
系统级线程跟踪存储空间的分配情况
在JVM的空闲时,检查并释放那些可被释放的储存器空间
由系统运行,程序员无须也无法精确控制和干预该回收过程
JDK(Java开发工具包)
JDK=JRE(Java运行环境)+tools(工具)
JRE(Java运行环境)=JVM(虚拟机)+API(lib、编程的库)
图片来源为 MOOC课程截图,大佬们不会怪罪我吧,我毕竟没有图片版权
毛头小子初学Java相关推荐
- 初学 Java Web 开发,请远离各种框架,从 Servlet 开发
写在前面: 本文是转自:http://www.oschina.net/question/12_52027 的文章,如果要求删除,第一时间联系我立即删除! Web框架是开发者在使用某种语言编写Web应 ...
- 初学Java的那段日子
最近因为一个朋友想要学习Java,在帮助他找教程的过程中回想到了我自己当年学习Java的那段岁月,故写了此篇文章总结了一下初学Java所必须要掌握的知识点,然后把一部分常见的面试题罗列出来.给予刚刚开 ...
- 初学Java Web开发,请远离各种框架,从Servlet开发
[转载自红薯,原帖地址]http://www.oschina.net/question/12_52027 OSCHINA 软件库有一个分类--Web框架,该分类中包含多种编程语言的将近500个项目. ...
- 初学Java该学哪些知识?这6大知识必学
目前,Java是开发人员的热宠,很多论坛都有不少热爱Java的开发人员,也有不少想成为Java程序员,但苦于不知道该如何学习Java,也不清楚该学些什么知识才能成为一个Java程序员.小千在这里抛砖引 ...
- 初学Java,这三个阶段你经历过吗?
在互联网时代,Java语言是使用最广泛的服务器端语言之一,随着市场需求的不断扩大,Java人才缺口也越来越大.在如此广阔的前景和市场缺口下,学习Java进入Java行业成为许多人的不二之选. 根据小千 ...
- 初学Java,这些框架你要掌握
随着Java面向对象语言的流行以及多层架构应用的出现,使得应用程序的可复用性得到了大大的提高,框架这个东西也在应用程序中开始出现,并得到了广泛的使用.所以千锋武汉老师为大家收集了目前较受欢迎的Java ...
- 初学Java会遇见的几个问题分享
在看到Java这个行业如此火热的情况下,有不少的年轻人,都"纷纷的入坑 ".初学者学习Java,首先要入门,要喜欢Java才能学好Java.但是Java学习初期通常会遇到很多问题, ...
- 初学Java,如何成为年薪50万的程序员?
作为炙手可热的薪资高的人才,Java程序员的薪资一直有目共睹.以武汉为例,根据权威机构统计,武汉Java开发人员的平均薪资是13.2k/月,这个工资远远高于武汉的平均工资水平,可以说是非常可观了.但比 ...
- 身为初学Java的你,这些IDE的优缺点你都知道吗?
如今的Java可是个很好的编程语言,不仅本身功能强大,而且还能够适应多平台开发,于是市场上各种关于Java的开发工具都纷纷冒出头.那么,身为初学Java的你,它们的优缺点你都知道吗?本文小千就列举6款 ...
最新文章
- tablednd保存 php,jqgrid中使用tableDnd插件,jqgridtablednd插件
- 你的Java代码是否符合规范,来测测便知!
- 因 Redis 分布式锁造成的 P0 级重大事故,整个项目组被扣了绩效。。。
- python人工智能——机器学习——分类算法-k近邻算法
- qpython numpy_Python-Numpy全面精简教程
- 关于 SAP Spartacus 和 SmartEdit 集成的问题
- dilink智能网联系统鸿蒙系统,【图】秦Pro DM DiLink智能网联系统实测解读_汽车江湖...
- 沃尔沃挖机计算机故障,沃尔沃挖掘机常见故障及原因总结,用户们可以看看
- Haproxy的安装与配置
- mysql第二天无法连接_jdbc 连接mysql 第二天就连接不成功,什么原因?-问答-阿里云开发者社区-阿里云...
- 嵌入式Linux开发笔记(韦东山2)
- 大一计算机基础重点知识,2015-大一计算机基础知识点归纳.doc
- UML建模工具最近更新(-2022年7月)(1)Papyrus、EA
- Cisco Packet Tracer教程
- 每周读书#14 - 彷徨之刃
- 爱情 何为爱情(搜集)
- dfrobot Mind+掌控板图形化编程
- linux ps2 模拟器,PCSX2 1.0 发布,PS2 模拟器
- Windows找不到文件无法卸载怎么解决?
- android动画帧率_开机动画没按帧率播放 有卡顿