操作系统
操作系统:(Operating System,简称OS):是管理和控制计算机硬件与软件资源的计算机程序,是直接运行在“裸机”上的最基本的系统软件,任何其他软件都必须在操作系统的支持下才能运行。
见图:操作系统所处位置
系统分类:Unix家族和Windows家族
见图:Unix家族图和Windows家族和发展
平台相关性:
我们称能够支持程序运行的硬件或软件环境为平台。
不同的平台都有其特有的指令格式,也就是说Win支持的指令格式和Linux支持的指令格式是不一样的,
进而导致了Windows的可执行文件(exe)不能在Linux平台上运行,反之Unix的可执行文件也无法再Windows上运行,把这种情况称为平台相关性。
比如Windows系统的exe文件,Mac系统的app文件等等.
进制
进制也就是进位制,是人们规定的一种进位方法。 对于任何一种进制---X进制,就表示某一位置上的数运算时是逢X进一位。
十进制是逢十进一,十六进制是逢十六进一,二进制就是逢二进一,以此类推,x进制就是逢x进位。
二进制:由两个基本数字0,1组成,运算规律是逢二进一.计算机都使用二进制表示数据.
八进制:由0、1、2、3、4、5、6、7组成,运算规律是逢八进一.
十进制:由0,1,2、3、4、5、6、7、8、9组成.
二进制数系统中,位简记为b,也称为比特,每个二进制数字0或1就是一个位(bit)。
计算机中的二进制则是一个非常微小的开关,用“开”来表示1,“关”来表示0。
位是数据存储的最小单位,其中8 bit 就称为一个字节(Byte),1KB不等于1000B.
1B(byte,字节)= 8 bit;
1KB(Kibibyte,千字节)=1024B= 2^10 B;
1MB(Mebibyte,兆字节,百万字节,简称“兆”)=1024KB= 2^20 B;
1GB(Gigabyte,吉字节,十亿字节,又称“千兆”)=1024MB= 2^30 B;
1TB(Terabyte,万亿字节,太字节)=1024GB= 2^40 B;
1PB(Petabyte,千万亿字节,拍字节)=1024TB= 2^50 B;
进制间的转换
十进制--->二进制:
对于整数部分,用被除数反复除以2,除第一次外,每次除以2均取前一次商的整数部分作被除数并依次记下每次的余数。
另外,所得到的商的最后一位余数是所求二进制数的最高位。
二进制--->十进制:
进制数第1位的权值是2的0次方,第2位的权值是2的1次方,第2位的权值是2的2次方……公式:第N位 * 2的N-1次方,结果再相加.
十进制和八进制之间转换:
十进制--->八进制:
10进制数转换成8进制的方法,和转换为2进制的方法类似,唯一变化:除数由2变成8。
八进制--->十进制:
进制数第1位的权值为8的0次方,第2位权值为8的1次方,第3位权值为8的2次方
十进制和十六进制之间转换:100
十进制--->十六进制:
10进制数转换成16进制的方法,和转换为2进制的方法类似,唯一变化:除数由2变成16。
十六进制--->十进制:
第0位的权值为16的0次方,第1位的权值为16的1次方,第2位的权值为16的2次方……
二进制和八进制之间转换:
二进制和十六进制之间转换:
原码、反码和补码操作
原码、反码和补码操作:
在计算机内,有符号数有3种表示法:原码、反码和补码,所有数据的运算都是采用补码进行的。
正数的原码,反码,补码都相同,负数稍微复杂。
操作5(101)和-5的二进制。
原码:
就是二进制定点表示法,即最高位为符号位,“0”表示正,“1”表示负,其余位表示数值的大小。
反码:
负数的反码是对其原码逐位取反,但符号位除外。
补码:
负数的补码是在其反码的末位加1。
求反码的时候,最高位是符号位不能改变。
正数的符号位是0.
正数5:
5的二进制是:00000101
原码:00000101
反码:00000101
补码:00000101
负数:-5:
5的二进制是:00000101
原码:10000101
反码:11111010
补码:11111011
计算机语言
计算机语言分类:
① 机器语言:直接用二进制指令表达,指令是用0和1组成的一串代码,它们有一定的位数,并分成若干段,各段的编码表示不同的含义(如0000 代表 加载(LOAD),0001 代表 存储(STORE))。
② 汇编语言:使用一些特殊的符号来代替机器语言的二进制码(又称符号语言),计算机不能直接识别,需要用一种软件将汇编语言翻译成机器语言,汇编语言依赖于硬件体系,开发难度大(如加法指令ADD/ADC、减法指令SUB/SBB)。
③ 高级语言:使用一定格式的自然语言进行编写源代码,通过编译器将源代码翻译成计算机直接识别的机器语言,之后再由计算机执行,不直接操作硬件,把繁琐的翻译操作交给编译器完成。
sun公司和Java平台
美国SUN(Stanford University Network)公司,在中国大陆的正式中文名为“太阳计算机系统(中国)有限公司”。
1982年,SUN公司诞生于美国斯坦福大学校园,并于1986年上市,在NASDAQ(纳斯达克:是全美证券商协会自动报价系统)的标识为SUNW,2007年改为JAVA。
2009年4月20日19点40分,美国数据软件巨头甲骨文公司(Oracle)宣布以74亿美元收购SUN公司,从此Java也有“干爹”了,在这个拼爹的时代,Java的发展前景不容置疑。
Java的三大平台:见图
1999年SUN公司发布了基于Java的三个平台技术标准:J2SE,J2EE,J2ME,2005年开始分别改名为:JavaSE,JavaEE,JavaME。随着J2EE的发布,Java正式的迎来了属于自己的“春天”。
① Java SE(Java Platform Standard Edition):Java标准平台,它允许开发和部署在桌面、服务器、嵌入式环境和实时环境中使用的Java 应用程序,如做一个桌面版的QQ,JavaSE能为Java EE和JavaME提供开发基础。
② Java EE(Java Platform Enterprise Edition):Java企业平台,可帮助开发和部署可移植、健壮、可伸缩且安全的服务器端Java应用程序,如企业的应用系统ERP等。Java EE是在Java SE的基础上构建的,它提供Web服务、组件模型、管理和通信API,可以用来实现企业级的面向服务体系结构(SOA)和Web等应用程序。
③ Java ME(Java Platform Micro Edition):Java微型平台,也叫K-JAVA,用来开发移动设备和嵌入式设备(比如手机、PDA、电视机顶盒和打印机等)。随着Android的迅猛发展,JavaME现在使用的越来越少了,Android会逐渐的取代JavaME的市场份额。
以Java作为开发语言的其他设备有很多,如:如日中天的Android智能设备。
学习Java,我们都是从JavaSE开始的,只有学好JavaSE才能很好的掌握JavaEE和Android的知识。对于Java的就业,很少有人从事单纯的JavaSE开发的,这不是Java的强势之处,我们应该面向市场更广阔的JavaEE和Android就业方向。
Java跨平台原理
Java跨平台的原理:
1):编译之后会生成与平台无关的字节码文件。
2):得以来不同平台的虚拟机(JVM)。
JVM是不跨平台的。
JDK-JRE-JVM概述
见Java模型概念图:
JRE(Java Runtime Environment):Java运行环境,如果要运行Java程序,就需要JRE的支持,JRE里包含JVM。
JDK(Java Development Kit):Java开发工具,包含开发Java程序的所有工具,如javac和java等,JDK里包含JRE。
Java虚拟机(Java Virtual Machine),简称JVM,它是运行所有Java程序的虚拟计算机,好比是街机游戏的模拟器。
JVM是Java语言的运行环境,也是Java 最具吸引力的特性之一。JVM用于读取并处理编译过的与平台无关的字节码(class)文件,从而实现Java的可移植性。但是值得注意的是Java虚拟机是不跨平台的。也就是说在Win下得装Win版的JVM,在Linux下装Linux版的JVM。
见图:选择不同平台的JDK版本
JVM是Java程序的解释和执行器。
Java的编译和运行机制
classpath环境变量
CLASSPATH顾名思义就是class文件的路径,表示JVM从哪里去寻找class文件。
CLASSPATH = c:\test就表示执行java命令时去c:\test目录中去找需要被执行的class文件。
在java5之前CLASSPATH没有默认值,要是设置成当前路径的话,得使用“.”,
若CLASSPATH=.;c:\test,就表示先在当前目录找class文件,要是没找到就去c:\test目录找(当一个变量有多个值时,多个值之间用英文的分号隔开)。
从Java5开始CLASSPATH默认就是当前路径,一般情况下不需再指定。
若使用Java5以前的版本,设置CLASSPATH应该是:
.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar
dt.jar是关于运行环境的类库,主要是swing的包;tools.jar是工具类库;
后来SUN公司改进了JDK设计,JRE会自动搜索当前路径下的jar包,并自动加载dt.jar和tools.jar。那么从Java5开始,再也不必为设置CLASSPATH变量感到头疼了。
暂时不需要配置,就让CLASSPATH默认表示当前目录路径。
如何把编译出来的class文件存放到指定的目录:
Java基本语法
规定
Java基本语法:
1):Java语言严格区分大小写,好比main和Main是完全不同的概念。
2):一个Java源文件里可以定义多个Java类,但其中最多只能有一个类被定义成public类。若源文件中包括了public类,源文件必须和该public类同名。
3):一个源文件中包含N个Java类时,成功编译后会生成N份字节码文件,即每个类都会生成一份单独的class文件,且字节码文件名和其对应的类名相同。
4):若一个类必须运行,则必须拥有main方法,因为main方法是程序的入口.
编程建议:
一个Java源文件只定义一个类,不同的类使用不同的源文件定义;
将每个源文件中单独定义的类都定义成public的;
保持Java源文件的主文件名与源文件中的类名一致;
注释
Java提供3种注释类型:
① 单行注释;
② 多行注释;
③ 文档注释;
单行注释:// ; //注释信息,从//开始到本行结束的所有字符会被编译器忽略;
多行注释:/* /;/ 注释信息 /之间的所有字符会被编译器忽略
文档注释:/* /;/* 注释信息 */和多行注释一样,除此之外还可以专门生成文档信息API。
关键字与保留字
关键字:在编程语言中有一些事先定义的,有着特殊含义和用途的单词。