最近看了关于java的几条帖子,写的不错,总结了一下
1.最开始写代码,例如C语言(“一次编写,到处编译”)都是经过编译后生成汇编码,直接在cpu上执行。 因为不同的硬件架构和操作系统,会导致不同的cpu支持的指令可能不同,也就是说不通类型的cpu所能执行的代码就是我们说所的本地代码,也叫本机代码或者native代码。这给程序的移植性带来很很大的麻烦,我们在一台机器上运行的好好的代码,如果拿到另一个硬件架构不同的机器上去的话,有可能运行不起来。C,C++写的代码等都是本地代码。但是,本地代码的好处就是效率比较快,因为它少了一个转换的过程。
后来,形成了另一种编程模式,例如:java(“一次编译,到处运行”)。 就是采用一种虚拟机的机制, 屏蔽掉底层硬件和操作系统的不同,写的代码经过编译后形成一种中间语言代码,例如java的class字节码。 这种中间码直接在虚拟机里面执行,虚拟机负责将中间码转换成其所在平台上能执行的本地机器码。
jvm虚拟机是一边把java字节码逐一转换为本地代码一边运行的,存在着运行速度的问题,jvm虚拟机每次运行时都要把字节码变换为机器语言,这一机制是造成运行速度慢的原因,为此,目前业界也在努力改善这一问题。
在微软的.net 平台下面的编程模型也是类似于java class文件的,不管是什么语言,写的代码经过相应的编译器编译以后,会生成中间码,然后.net framwork 里面的虚拟机读入这种中间码,产生本地机器上的本地码。 微软把这种产生中间码的语言所写的代码称为托管代码,意思就是说,这种代码是受.net framework 管理的,不能直接访问内存等硬件, 需要通过.net framework 来访问。
2. class文件详解:
class文件全名称为Java class文件,主要在平台无关性和网络移动性方面使Java更适合网络。它在平台无关性方面的任务是:为Java程序提供独立于底层主机平台的二进制形式的服务。
java程序运行步骤:Java源码=》编译器=》JVM可执行的Java字节码(虚拟指令或class文件)=》
JVM=》JVM解释器=》机器可执行的二进制文件(本地代码,机器语言)=》程序运行。
库(lib)与jar包有什么区别?
1:
一般情况下都是若干个.class文件能实现一组功能,这时候便可以把这些.class文件打包成.jar文件。比如说当需要使用集合类的时候,咱们需要import java.uitl.*; 对应的就是一个jar包(.jar文件)它里面就是一堆.class文件。
2:
library是一个库的集合,library可以包含多个jar文件,jar包是封装好的javaclass类。
不难理解:lib就是一堆jar包的集合、那么jar包里面肯定还有子包,子包里就是基本的单位类
https://baike.baidu.com/item/class文件/6740343?fr=aladdin
https://blog.csdn.net/playboy_lei/article/details/50318313
https://blog.csdn.net/a4171175/article/details/90735888
https://blog.csdn.net/qq_30021219/article/details/89433652
https://baike.baidu.com/item/本地代码
https://blog.csdn.net/qq_33530388/article/details/71155702
https://blog.csdn.net/DAVE_JAVA/article/details/52588755
最近看了关于java的几条帖子,写的不错,总结了一下的更多相关文章
- 精心收集java基础106条
Java基础 1.一个".java"源文件中是否可以包括多个类(不是内部类)?有什么限制? 一个Java源文件中可以定义多个类,但最多只能定义一个public的类,并且public ...
- 不要写很酷但同事看不懂的Java代码
你好呀,我是沉默王二,一个和黄家驹一样身高,和刘德华一样颜值的程序员.为了提高 Java 编程的技艺,我最近在 GitHub 上学习一些高手编写的代码.下面这一行代码(出自大牛之手)据说可以征服你的朋 ...
- 如何写出同事看不懂的Java代码?
原创:微信公众号 码农参上,欢迎分享,转载请保留出处. 哈喽大家好啊,我是没更新就是在家忙着带娃的Hydra. 前几天,正巧赶上组里代码review,一下午下来,感觉整个人都血压拉满了.五花八门的代码 ...
- CSDN日报20170328——《你看那个人他像一条狗》
[程序人生]你看那个人他像一条狗 作者:清纯的微笑 今年三十了,到了传说中程序猿最应该迷茫的年龄了,那么我迷茫吗,没的说,依照华为34岁就要劝退的要求,我还有4年的程序生涯. [微信小程序]重磅!个人 ...
- 看了这个Java实习生入职测试题后,幸亏我不是实习生
看了这个Java实习生入职测试题后,幸亏我不是实习生 一个Java实习生的入职测试题,你能答对几个? 今天在某APP中看到,有实习生放出的Java实习生入职测试题.看完之后,很庆幸自己不是实习生. 本 ...
- 用Python爬取了考研吧1000条帖子,原来他们都在讨论这些!
写在前面 考研在即,想多了解考研er的想法,就是去找学长学姐或者去网上搜索,贴吧就是一个好地方.而借助强大的工具可以快速从网络鱼龙混杂的信息中得到有价值的信息.虽然网上有很多爬取百度贴吧的教程和例子, ...
- 学习java窗口基本操作时无聊写的
学习java窗口基本操作时无聊写的 就当记录 代码如下: package day08; import java.awt.BorderLayout;import java.awt.Color;impor ...
- java代码,用continue写出偶数
总结:不满足条件时,输出当前==== package com.b; import java.util.Scanner; //用continue写出偶数的代码是: public class twe { ...
- Effective.Java第56-66条(规范相关)
56. 为所有已公开的API元素编写文档注释 要正确地记录API,必须在每个导出的类.接口.构造方法.方法和属性声明之前加上文档注释.如果一个类是可序列化的,还需要记录它的序列化形式. 文档注释在源 ...
随机推荐
- shell脚本将命令的结果赋值给变量的2种写法
Shell 也支持将命令的执行结果赋值给变量,常见的有以下两种方式: variable=`command`variable=$(command) 第一种方式把命令用反引号` `(位于 Esc 键的下方 ...
- wordpress添加视频弹窗插件Video PopUp
Video PopUp 给外部div 添加class类名:class="main-play" a链接添加 class="vp-a" 测试链接地址:https: ...
- 好久不见的博客咯!——没有可持久化的可持久化treap
每每想要去了解可持久化treap这个好写好调的东东,然后就发现网上只有一个人的——SymenYang的!在此我必须得把他批判一番——写方法不贴代码是什么心态!而且写出来的是有问题的呀!害人不浅! 好吧 ...
- csp-s模拟测试92
csp-s模拟测试92 关于$T1$:最短路这一定建边最短路. 关于$T2$:傻逼$Dp$这一定线段树优化$Dp$. 关于$T3$:最小生成树+树P+换跟一定是这样. 深入(?)思考$T1$:我是傻逼 ...
- mysql最新版与mysql5.6的兼容问题
最近公司在给别的企业打了一个项目,在公司本地使用的是mysql 5.6,但是搭建的项目的mysql版本是最新版5.7以后吧,所以有些sql在执行上出了一点问题 目前发现的是: 1: 在5.6版本下先o ...
- 为什么 TCP 建立连接是三次握手,关闭连接确是四次挥手呢?
Java技术栈 www.javastack.cn 优秀的Java技术公众号 作者:小书go https://blog.csdn.net/qzcsu/article/details/72861891 背 ...
- jQuery Ajax请求 .net 一般处理程序
初学ajax 一个简单的功能,调试了2个小时,代码如下虽然成功了 但是有错误 <!DOCTYPE html> <html> <head> <meta http ...
- 【LGP5439】【XR-2】永恒
题目 是个傻题 显然枚举每一条路径经过了多少次,如果\(u,v\)在树上不是祖先关系的话经过\((u,v)\)这条路径的路径条数就是\(sum_u\times sum_v\) 于是我们子树大小映射到\ ...
- 解决WIN8输入法的问题,Ctrl+空格,Ctrl+Shift,切换问题
在WIN8中,我们曾经熟悉的的Ctrl+空格和Ctrl+Shift消失了,取而导致的是WIN+空格. 在这里先简单解释一下WIN8的输入法结构: 在WIN7以前的输入法中,输入法采用了平行目录的结构, ...
- 21-5-split
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...