java自学笔记(第六天)
(第一天)
编译语言,解释语言,java语言的区别:
编译型语言:
解释:使用专门的编译器,针对特定平台(操作系统)将某种高级语言源代码一次性“翻译”成可被该平台硬件执行的机器码,并包装成该平台所能识别的可执行性程序的格式,编译生成的可执行性程序可以脱离开发环境,在特定的平台上独立运行。(比如私人定制西服,每个人因为肤色,骨骼,身材的不同,所以定制出来的西服不同,定制出来的西服只适合被定制人的身材,别的人穿就不适合)
优点:效率高,一次编译永久调用
缺点:不跨平台
适用语言:C, C++, FORTRAN, Pascal (注:FORTRAN,Pascal语言为公式语言,主要做数学运算)
解释型语言:
解释:使用专门的解释器对源程序逐步解释成特定平台的机器码并立即执行的语言,逐步的把源代码通过解释器翻译成机器码,然后再包装成该平台所能识别的可执行性程序格式
优点:跨平台
缺点:效率低,每次运行程序都要解释
适用语言:Ruby,Python
解释型语言和编译型语言的区别:
Java型编译语言:
把源代码通过编译器编译成不依赖任何平台的二进制码,再把二进制码通过各平台特定的解释器解释成该平台可以识别的机器码,其中JVM是JAVA跨平台的关键
Jdk,jvm,jre之前的关系:
Jdk包含jre和开发工具,jre(运行环境)包含jvm(java虚拟机,翻译器)和java核心库
如何下载jdk:
登录www.oracle.com,然后按照下图顺序依次点击即可,在最后一张图的步骤下,按你使用的操作系统下载对应得到jdk
(第一步)
(第二步)
(第三步)
(第四步)
(第五步,按自己电脑操作系统下载)
JDK环境配置:
在环境变量Path中添加jdk的安装路径,比如D:\Java\jdk1.8.0_151\bin,(如果电脑环境变量Path中有值,则在之前的字符后面用;隔开,如果没有Path则新建一个即可,在用户环境变量中设置Path和系统环境变量中设置是一样的,区别是系统中设置则对所以使用计算机的用户有用,在用户变量中设置,则只对当前用户有用)其作用是在Path环境中添加该路径则可以在电脑Dos命令下任何一个盘符下找到该路径下的命令,比如javac,java等,否则会javac不属于电脑命令的错误
PLASSCLASS作用:告诉计算机去那个路径下找需要解释的类,如果不设置则代表本地,如果设置了则只会在制定的路径下查找
javac Test.java
java -classpath d:\ Test (-classpath:指定程序去那个路径下找这个lei)
Javac -d和java -cp:
Javac -d E:\ cs.java(源文件名):进入源文件目录,在doc命令下打出这个命令,这个命令的作用是,将当前目录下的源文件cs.java编译到E:\下
Java -cp E:\ cs(类名):进入源文件目录,在doc命令下打出这个命令,这个命令的作用是,在E:\下找到cs这个类,并解释
(第二天)
文档注释:
Javadoc -d [路径]源文件名
一个源文件可以有多个类,但是只能有一个public类,因为如果源文件中定义了public类,则源文件名必须是被定义成public类的类名.java
Public class Test{
Public static void main(String[] args){
System.out.println(“好好学习天天向上”);
}
}
标识符:
标识符必须由字母(中,日,韩等字符),数字,下划线__,$符号组成,其中数字不能开头,标识符不能是标识符,JAVA有50个标识符(标识符全部小写),也不能是保留字goto,const,但是可以包含关键字和保留字
变量:
用来调用和存储存放在电脑内存中的数据,电脑内存是一个数据载体,变量是依附在
内存中用来存储数据的容器,当需要调用数据时必须在内存外部定义一个和内存里面数据类型相匹配的数据类型用来接受数据,当需要存储数据时也必须等义一个和内存内部数据类型相匹配的值用来存储数据
(第三天)
数值二进制符号位为1,则表明该数是负数,该二进制数为补码,所以需要先算成反码,然后计算源码
正无穷大:
正数除0等于正无穷大,任何数的正无穷大都相同
负无穷大:
负数处0等于负无穷大,任何数的负无穷大都相同
负数:
0除0等于负数,任何负数都不相同
2的各次方:
2^0=1
2^1=2
2^2=4
2^3=8
2^4=16
2^5=32
2^6=64
2^7=128
2^8=256
2^9=512
2^10=1024
第四天
java位运算符:
“&”:(按位与)两个操作数的二进制数中都为1,则结果才是1,否则为0
“|” :(按位或) 两个位只要有一个为1,则结果就是1
“~”(按位非):该数二进制数所有位都取反,包括符号位
“^”(按位异或):两个操作二进制中,相同的结果为0,不同的结果为1
<<:左移,一个数左移多少位则代表,这个数*2的多少次方,如8位移2位,则标识8*2^2
>>:右移,同理和左移相反
第五天
比较运算符:
&&:(与)当两边的表达式结果都是ture时,整个表达式才为ture,否则为false
& : 不短路,就算左边的表达式为false,依然会对右边的表达式进行判断
|| :(或)当两边的表达式有一边为ture时,则整个表达式为1,否则为false
| : 不短路
^ : (非)两个表达式相同为false,不同为ture
! : 取反
三目表达式:
表达式1?表达式2:表达式3;
当表达式1结果为ture时,则整个表达式采用表达式2的值,反之采用表达式3的值
当一个数值转换成二进制时,符号位为负数,则表明该二进制码为源码,需要转换成补码,
当两个数相计算后得出的二进制码符号位为1时,则标识该数为补码,需要转换成源码
源码,补码,反码的计算过程:
源码——(除符号位外,都取反)——反码(反码+1)——补码
一.扩展赋值运算符
1.= 赋值运算符 变量=表达式 如:a=3;将a的值赋为3
2.+= 加后赋值 变量+=表达式 如:a+=3;即a=a+3
3.-= 减后赋值 变量-=表达式 如:a-=3;即a=a-3
4.*= 乘后赋值 变量*=表达式 如:a*=3;即a=a*3
5./= 除后赋值 变量/=表达式 如:a/=3;即a=a/3
6.%= 取余后赋值 变量%=表达式 如:a%=3;即a=a%3
(第六天)
认识面向对象:
程序三种结构:
面向对象三大特征:
封装:将对象的实现细节隐藏起来,然后通过一些公用方法来暴露该对象的功能
继承:当子类继承父类之后,子类作为一种特殊的父类,将直接获得父类的属性和方法,继承是面向对象实现软件复用的重要手段
多态:子类对像可以直接赋给父类变量,但运行时依然表现出子类的行为特征,这意味着同一个类型的对象在运行时可能表现出不同的行为特征
(注意:抽象也是面向对象的重要部分,抽象并不打算了解全部问题,而只是考虑部分问题)
面向对象支持的功能:
对象基本标识:
标识唯一性、分类性、多态性、封装性、模块独立性。
(类是具有共同属性、共同方法的对象集合、类是对象的抽象,对象是类的实例)
消息:消息是一个实例与另一个实例之间传递的信息
面向对象思想:
使用类、对象、继承、封装、消息等基本概念来改进程序设计