java概述与基础知识
主要知识点:
- 什么是编程
- 什么是跨平台性?原理是什么?JVM
- Jre和Jdk的区别?
- java虚拟机JVM
- java程序运行机制
- java环境变量
- java基础语法
- 什么是编程?
编程就是让计算机为解决某个问题而使用某种程序设计语言编写程序代码,并最终得到结果的过程。为了使计算机能够理解人的意图,人类就必须要将需解决的问题的思路,方法和手段通过计算机能理解的形式告诉计算机,使得计算机能够根据人的指令一步一步的完成工作,完成某种特定的任务。
这种人和计算机之间交流的过程就是编程。
- 什么是跨平台性?原理是什么?JVM
所谓跨平台性,是指java语言编写的程序,一次编译后,可以在多个系统平台上运行。
实现原理:java程序是通过java虚拟机在系统平台上运行的,只要该系统可以安装相应的java虚拟机,该系统就可以运行java程序。
java程序之所以能够实现跨平台运行,是因为它根本就不直接运行在任何底层平台上,而是需要在哪里运行就要在哪里准备好自己的java平台,而这只是安装配置一个软件。
- Jre和Jdk的区别
Jre:Java Runtime Environment,java运行环境,包含java虚拟机JVM和java程序所需的核心类库等,如果想要运行一个开发好的java程序,计算机只需要安装JRE即可
Jdk:Java Development Kit Java ,开发工具包。JDK是提供给java开发人员使用的,其中包含了java的开发工具,也包括了JRE。所以安装了JDK,就不用在单独安装JRE了
简单来说,使用JDK开发完成的java 程序,交给JRE运行。
- java虚拟机jvm
Java Virtual Machine,简称JVM。
它是运行所有java程序的抽象计算机,是java语言的运行环境,它是java最具吸引力的特性之一,JVM读取并且处理编译过的与平台无关的字节码(class)文件。java编辑器针对JVM产生class文件,因此是独立于平台的。
java虚拟机不是跨平台的。
- java程序运行机制
编译:javac 文件名.文件名后缀
运行:java 类名
java程序的组成:Java源文件,字节码文件。
javac :负责的是编译的部分,当执行 javac 时,会启动 java 的编译器程序。对指定扩展名的.java 文件进行编译。 生成了 jvm 可以识别的字节码文件。也就是 class 文件,也 就是 java 的运行程序。
java :负责运行的部分.会启动 jvm.加载运行时所需的类库,并对 class 文件进行执行.一个文件要被执行,必须要有一个执行的起始点,这个起始点就是 main 函数.
- java环境变量
配置环境变量:让java jdk\bin 目录下的工具,可以在任意的目录下运行,原因是将该工具所在的目录告诉了系统,当使用该工具的时候,由系统帮我们去寻找指定的目录。
环境变量的配置:
永久配置方法:JAVA_HOME=%安装路径%\Java\jdk
path=%JAVA_HOME%\bin
临时配置方法:set path=%path%;C:\Program Files\Java\jdk\bin
特点:系统默认先去当前路径下找要执行的程序,如果没有,在去path中设置的路径寻找。
classpath的配置:
永久配置方式:classpath=.;c:\;e:\
临时配置方式:set classpath=.;c:\;e:\
注意:在定义classpath环境变量时需要注意的情况
如果没有定义环境变量classpath,java启动jvm后,会在当前目录下查找要运行的类文件:
如果指定了classpath,那么会在指定的目录下查找要运行的类文件。
还会在当前目录查找吗?两种情况。
如果classpath的值结尾处有分号,在具体路径中没有找到运行的类,会默认在当前目录在找一次。
如果classpath的值在结尾处没有分号,在具体路径中没有找到运行的类,不会在再当前目录下找,
一般不指定分号,如果没有在指定目录下找到运行的类文件,就报错,这样就可以调试。
- java基础语法
关键字:其实就是某语言赋予特殊含义的单词。
保留字:其实就是还有没有赋予特殊的含义,日后要使用的单词。
标志符:其实就是在程序中自定义的名词。比如类名,变量名,函数名。包含0-9,a-z,A-Z,$,_。
注意:数字不可以开头,不可以使用关键字。
常量:是在程序中不会变化的数据。
变量:其实就是内存中的存储空间,用于存储常量数据。
作用:方便运算,因为有些数据不确定,所以确定该数据的名词和存储空间。
特点:变量空间可以重复使用。
什么时候定义变量?只要是数据不确定的饿时候,就要定义变量。
变量空间开辟需要什么要素呢?
- 这个空间要存储什么数据?数据类型。
- 这个空间叫什么名字?变量名称。
- 这个空间第一次的数据是什么?变量的初始化。
变量的作用域和生存周期?
变量的作用域:
作用域从变量定义的开始位置,到该变量所在的那对大括号结束。
生命周期:
变量从定义的位置开始就在内存中活了。
变量到达它所在作用域的时候,就在内存中消失了。
数据类型:
基本数据类型:byte short int long float double char boolean
引用数据类型:数组 类 接口
级别从低到高为:byte char short (这三个平级)→int→long→float→double.
自动类型转换:从低级别到高级别,系统自动转换。
强置类型转换:什么情况下使用?把一个高级别的数赋给一个低级别的变量。
总结:类型转换。
小转大,自动!自动类型转换,也叫隐式类型转换。
大转小,强制!强制类型转换,也叫显式类型转换。
运算符:
算术运算符。
+ - * / % %:任何整数模 2 不是 0 就是 1,所以只要改变被模数就可以实现开关运算。
+:连接符。
++,--
赋值运算符。
= += -= *= /= %=
3 / 65
比较运算符。
特点:该运算符的特点是:运算完的结果,要么是 true,要么是 false。
逻辑运算符。
& | ^ ! && ||
逻辑运算符除了 ! 外都是用于连接两个 boolean 类型表达式。
&: 只有两边都为 true 结果是 true。否则就是 false。
|:只要两边都为 false 结果是 false,否则就是 true
^:异或:和或有点不一样。
两边结果一样,就为 false。
两边结果不一样,就为 true.
& 和 &&: 区别:
& :无论左边结果是什么,右边都参与运算。
&&: 短路与,如果左边为 false,那么右边不参数与运算。
| 和 || 区别:
|:两边都运算。
|| :短路或,如果左边为 true,那么右边不参与运算
语句:
if switch do while while for
这些语句什么时候用?
1.当判断固定个数的值的时候,可以使用if,也可以使用switch。
但是建议使用switch,效率相对较高。
switch(变量){
case 值:要执行的语句,break。
...
default:要执行的语句。
}
工作原理:用小括号变量的值依次和case的值进行比较,和哪个case后面的值相同了,就执行哪个case后面的语句。如果没有则执行default后面的语句。
细节:
break是可以省略的,如果省略了就一直执行到遇到break为止。
switch后面的小括号中的变量应该是byte,char,short,int,枚举,当中的一种。
default可以写在switch语句的任意位置,如果将default放在第一行, 则不管expression 与case 中的 value 是否匹配,程序会从default
开始执行直到第一个 break 出现。
2.当判断数据范围,获取判断结果为Boolean类型的时候,需要if语句。
3.当某些语句需要执行多次的时候,就用循环结构。
while 和 for 可以进行互换:区别在于,要控制循环次数,建议使用for,因为for循环完毕,变量在内存中释放。
break作用于switch和循环语句中,用于跳出,或者成为结束。
continue只用于循环结构,结束本次循环,继续下次循环,该语句单词存在,下面不允许定义语句,执行不到。
表达式和三目运算符:
表达式:是由数字,运算符,数字分组符号(括号)等能求得数值的有意义的排序的序列。例如 a+b,3.14+a,boolean b= i < 10 && (i%10 != 0)
表达式的值:对表达式操作运算得到的结果是表达式的值。
表达式的类型:表达式的值的数据类型就是表达式的类型。
表达式的运算顺序:应按照运算符的优先级从高到低进行,优先级相同按照从左到右的顺序进行。
三目运算符:语法格式 x?y:z 其中x为boolean表达式,先计算x的值,若为true,其结果是y,否则是z。
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。