毛头小子初学Java

争取每日一更。初学者,所以笔记记得有不合理之处还望各位大佬看文章后给出宝贵的建议,大宝在此谢谢各位!

1.1Java 语言的历史与特点

What is Java?

Java首先是一种编程语言

  1. 它是一种面向对象的编程语言(oop)
    
  2. 它的语法与c和c++语言极为相似
    
  3. Java所用的语法十分简单
    

Java的特点

  1. 简单易学(呵。。。呵呵。。呵呵呵)
    
  2. 面向对象(跨平台)
    
  3. 平台无关性
    
  4. 安全稳定
    
  5. 支持多线程
    
  6. 提供了丰富的类库
    
  7. 易头秃(开个玩笑)
    

Java提供类以满足网络化、多线程、面向对象系统的需要

  1. 语言包(package)
    
  2. 实用程序包
    
  3. I/o包
    
  4. 网络包
    
  5. 图形用户界面包(windows用户界面包)
    
  6. 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虚拟机规范定义了:

  1. 指令集
    
  2. 寄存器集
    
  3. 类文件结构
    
  4. 堆栈
    
  5. 垃圾收集堆
    
  6. 内存区域
    

Java运行环境(JRE):

JRE(the Java runtime environment):由虚拟机装载程序并调用相应的指令来具体执行。

 JRE=JVM(虚拟机)+API(lib/编程的库)

JRE运行程序时的三项主要功能:

  1. 加载代码:由class loader完成:()
    
  2. 效验代码:由bytecode(目标代码、字节码)verifier‘完成。(保证代码安全)
    
  3. 执行代码:由runtime interpreter完成、(解释与执行)
    

理解

1. 为何Java是跨平台的?

答:由于class文件是与平台无关的,只需把class文件,放到不同的系统就能有不同的虚拟机来执行,所以Java程序是可以跨平台的

2. 为何Java是安全的?

答:Java里边有代码的自动校验过程(bytecode verifier)

Java自动垃圾回收技术

  1. 垃圾回收(garbage collection、gc)
  2. 在C/C++等语言中由程序员负责回收无用内存
  3. Java语言自动垃圾回收
    1.  系统级线程跟踪存储空间的分配情况
      
    2.  在JVM的空闲时,检查并释放那些可被释放的储存器空间
      
    3.  由系统运行,程序员无须也无法精确控制和干预该回收过程
      

JDK(Java开发工具包)

JDK=JRE(Java运行环境)+tools(工具)

JRE(Java运行环境)=JVM(虚拟机)+API(lib、编程的库)
图片来源为 MOOC课程截图,大佬们不会怪罪我吧,我毕竟没有图片版权

毛头小子初学Java相关推荐

  1. 初学 Java Web 开发,请远离各种框架,从 Servlet 开发

    写在前面: 本文是转自:http://www.oschina.net/question/12_52027  的文章,如果要求删除,第一时间联系我立即删除! Web框架是开发者在使用某种语言编写Web应 ...

  2. 初学Java的那段日子

    最近因为一个朋友想要学习Java,在帮助他找教程的过程中回想到了我自己当年学习Java的那段岁月,故写了此篇文章总结了一下初学Java所必须要掌握的知识点,然后把一部分常见的面试题罗列出来.给予刚刚开 ...

  3. 初学Java Web开发,请远离各种框架,从Servlet开发

    [转载自红薯,原帖地址]http://www.oschina.net/question/12_52027 OSCHINA 软件库有一个分类--Web框架,该分类中包含多种编程语言的将近500个项目. ...

  4. 初学Java该学哪些知识?这6大知识必学

    目前,Java是开发人员的热宠,很多论坛都有不少热爱Java的开发人员,也有不少想成为Java程序员,但苦于不知道该如何学习Java,也不清楚该学些什么知识才能成为一个Java程序员.小千在这里抛砖引 ...

  5. 初学Java,这三个阶段你经历过吗?

    在互联网时代,Java语言是使用最广泛的服务器端语言之一,随着市场需求的不断扩大,Java人才缺口也越来越大.在如此广阔的前景和市场缺口下,学习Java进入Java行业成为许多人的不二之选. 根据小千 ...

  6. 初学Java,这些框架你要掌握

    随着Java面向对象语言的流行以及多层架构应用的出现,使得应用程序的可复用性得到了大大的提高,框架这个东西也在应用程序中开始出现,并得到了广泛的使用.所以千锋武汉老师为大家收集了目前较受欢迎的Java ...

  7. 初学Java会遇见的几个问题分享

    在看到Java这个行业如此火热的情况下,有不少的年轻人,都"纷纷的入坑 ".初学者学习Java,首先要入门,要喜欢Java才能学好Java.但是Java学习初期通常会遇到很多问题, ...

  8. 初学Java,如何成为年薪50万的程序员?

    作为炙手可热的薪资高的人才,Java程序员的薪资一直有目共睹.以武汉为例,根据权威机构统计,武汉Java开发人员的平均薪资是13.2k/月,这个工资远远高于武汉的平均工资水平,可以说是非常可观了.但比 ...

  9. 身为初学Java的你,这些IDE的优缺点你都知道吗?

    如今的Java可是个很好的编程语言,不仅本身功能强大,而且还能够适应多平台开发,于是市场上各种关于Java的开发工具都纷纷冒出头.那么,身为初学Java的你,它们的优缺点你都知道吗?本文小千就列举6款 ...

最新文章

  1. tablednd保存 php,jqgrid中使用tableDnd插件,jqgridtablednd插件
  2. 你的Java代码是否符合规范,来测测便知!
  3. 因 Redis 分布式锁造成的 P0 级重大事故,整个项目组被扣了绩效。。。
  4. python人工智能——机器学习——分类算法-k近邻算法
  5. qpython numpy_Python-Numpy全面精简教程
  6. 关于 SAP Spartacus 和 SmartEdit 集成的问题
  7. dilink智能网联系统鸿蒙系统,【图】秦Pro DM DiLink智能网联系统实测解读_汽车江湖...
  8. 沃尔沃挖机计算机故障,沃尔沃挖掘机常见故障及原因总结,用户们可以看看
  9. Haproxy的安装与配置
  10. mysql第二天无法连接_jdbc 连接mysql 第二天就连接不成功,什么原因?-问答-阿里云开发者社区-阿里云...
  11. 嵌入式Linux开发笔记(韦东山2)
  12. 大一计算机基础重点知识,2015-大一计算机基础知识点归纳.doc
  13. UML建模工具最近更新(-2022年7月)(1)Papyrus、EA
  14. Cisco Packet Tracer教程
  15. 每周读书#14 - 彷徨之刃
  16. 爱情 何为爱情(搜集)
  17. dfrobot Mind+掌控板图形化编程
  18. linux ps2 模拟器,PCSX2 1.0 发布,PS2 模拟器
  19. Windows找不到文件无法卸载怎么解决?
  20. android动画帧率_开机动画没按帧率播放 有卡顿

热门文章

  1. idea各种中文乱码问题
  2. 85款中国风字体!超级好看的古风系列
  3. 浅谈Linux标准的文件系统(Ext2/Ext3/Ext4)
  4. 从RMSE和MSE到更多选择:探索机器学习模型性能指标
  5. python snmp
  6. google map 地理编码API的两种方式
  7. pyecharts制作地图Map
  8. 2015年:跑步计划
  9. 出走的门徒之四:丰元创投朱会灿:冒险的牧师
  10. Lsky Pro+云服务器搭建私人图床