1. Java基础知识图解
java基础知识一
2.技术体系平台
1995年Sun公司推出的高级编程语言;2010年被Oracle公司收购。
Java SE(Java Standard Edition)标准版:面向桌面级应用,提供完整的Java核心API;
Java EE(Java Enterprise Edition)企业版:为开发企业环境下的应用程序提供一套解决方案。技术体系包含:Servlet、Jsp等,主要针对Web应用程序开发,称J2EE;
Java ME(Java Micro Edition)小型版:支持在移动终端(手机、PDA)运行,对Java API有所精简,加入针对移动端的支持,此版本称J2ME;
Java Card:支持一些Java小程序Applets运行在小内存设备如智能卡上的平台。
3.概述和特点
3.1.概述
Java从C和C++继承许多成份,是类C发展和衍生的产物。Java变量声明、操作符、参数传递和流程控制等都与C和C++语言完全相同。是一个纯粹的面向对象的程序设计语言,继承了C++面向对象技术的核心,以引用取代C中的指针、运算符重载(operator overloading)、以接口取代多重继承等特性,增加垃圾回收器功能,用于回收不再被引用的对象所占据的内存空间。JDK1.5又引入了泛型编程(Generic Programming)、类型安全的枚举、不定长参数和自动装/拆箱。
3.2.特点
面向对象oop:基本概念:类和对象;三大特性:封装、继承和多态;支持单继承,并以接口多实现补充单继承。
健壮性:吸收C/C++的优点,去掉影响程序健壮性的部分,如指针、内存的申请与释放等,增加异常处理机制和垃圾回收机制。提供一个相对安全的内存管理和访问机制,是强类型语言。
跨平台性:Java应用程序可在不同系统上运行。原理:只需安装一个Java虚拟机 (JVM Java Virtual Machine) 即可,因Java程序在操作系统中运行由JVM负责。
简单性:抛弃c++的指针和多继承,加入垃圾回收机制、多线程;高性能、安全的。
解释型语言,还有javaScript、PHP;像c、c++是编译性语言
Java虚拟机机制屏蔽底层运行平台的差别,实现了“一次编译,到处运行”,java文件被编译成class字节码文件,.class文件可在不同Java虚拟机(JVM)上执行。
4.Java环境和安装
4.1.JDK、JRE和JVM
JDK:提供给开发人员使用,包含java的开发工具和JRE。
JRE:由Java虚拟机(JVM)和Java核心类库等组成。运行Java程序,只需安装JRE即可。
JDK = JRE + 开发工具集(Javac编辑工具等)
JRE = JVM + Java SE标准类库
4.2.环境安装和配置
第一步:我的电脑——属性——高级系统设置——环境变量,新建JAVA_HOME变量 ,值为jdk的安装目录,例如:D:softwareJava8jdk1.8.0_131。
第二步:系统变量——新建CLASSPATH 变量变量值填写.;%JAVA_HOME%lib;%JAVA_HOME%lib ools.jar(注意最前面有一点)
CLASSPATH环境变量是用于设置Java编译器和运行时系统(JVM)在查找类文件时的搜索路径。当编译或运行时,编译器和JVM需要找到所需的类文件,以便正确加载和执行程序。
第二步:编辑path环境变量,新增%JAVA_HOME%bin;%JAVA_HOME%jrebin;(如果Path的变量值末尾有没有分号,先输入英文分号再输入上面的代码)
5.转义符、注释和路径
5.1.转义符
输入tab键,可实现命令补全。转义字符: (制表符)、 (换行符)、\()、"(")、'(')、 (回车)。
5.2.注释
@author 指定java程序的作者
@version 指定源文件的版本
*/
5.3.路径

6. 程序
6.1.helloWorld程序
编写java源文件、编译用javac命令编译java源文件:javac 源文件名.java、运行用java命令解释运行.class字节码文件:java 类名。

Java源文件以“.java”为扩展名,基本组成部分是类(class);程序执行入口是main方法:格式固定;严格区分大小写。方法由一条条语句构成,每条以“;”结束;大括号是成对出现缺一不可。
一个java源文件中可声明多个class类,数量不限。但最多声明一个public类,且被public声明的类名必须与源文件名相同;编译后每个类都会生成一个.class的字节码文件,与类名相同。
讯享网
6.2.Java代码规范
类、方法的注释,以javadoc的方式写;非JavaDoc的注释,往往给代码维护者看,着重代码意思,修改时需注意问题等;使用tab操作,实现缩进,默认整体向右移动,用shift+tab整体左移;运算符和=两边习惯加一个空格;源文件使用utf-8编码。
7.关键字和标识符
7.1.关键字和保留字
被赋予特殊含义、专门用途的字符串(单词),并且字母要小写,在程序中不能另作它用。
Java保留字:goto 、const,注意:区分大小写。
7.2.标识符的使用
标识符:对变量、方法、类、接口和包等命名的字符串,可理解为自己命名的字符序列。
命名规则:由26个英文字母大小写、0-9、_或$组成。不能以数字开头;不能直接用关键字或保留字,但能包含关键字和保留字;严格区分大小写,长度无限制,不能包含空格等。
名称命名规范:包名:多单词组成时所有字母小写:xxxyyyzzz;类名、接口名:多单词组成时,单词的首字母大写:XxxYyyZzz;变量名、方法名:多单词组成时,第一个单词首字母小写,第二个单词开始首字母大写:xxYyZzz;常量名:所有字母都大写,多单词时每个单词用下划线连接:XXX_YYY_ZZZ。
8.常量和变量
8.1.常量
常量:运行程序时,值不能改变的量。整数常量:88(十进制)、077(八进制)、11E(十六进制);浮点型常量:3.4f(float)、3.4(double型);布尔常量:true、false;字符常量:'A'、' '字符(转义)、'\'特殊;字符串常量:“你好帅";null常量:null;符号常量:final double p = 3.14。
8.2.变量
内存中的一个存储区域,该区域的数据可在同一类型范围内不断变化。程序中最基本的存在单元,包含变量类型、变量名和变量值。java是强类型语言:所有的变量必须先声明后使用,指定类型的变量只接受该类型与之匹配的值。
Java中每个变量必须先声明和赋值才能使用,用变量名可访问这块区域的数据。作用域:在定义内的一对{ }中,只有在其作用域中才有效,同一个作用域,不能定义重名的变量。
步骤:声明变量:根据数据类型在内存申请空间。赋值:将数据存储至对应的内存空间并赋值。作用域:规定变量所能使用的范围,只在其作用域内才能使用。
讯享网
8.3.成员变量和局部变量
根据变量的声明位置分为成员变量和局部变量,并且都有各自的生命周期。
9.Java数据
9.1 基本数据类型
Java对每一种数据都定义明确具体的类型(强类型语言),在内存中分配了不同大小的内存空间。按照数据类型划分为基本数据类型和引用类型。


9.1.1.基本数据类型
4,-3.403E38
~3.403E38
声明float类型结尾加‘f’或‘F’,如:float num = 12.3f;float尾数可以精确到7位有效数字,表示数值的范围比long还大。
浮点型表示带小数点的数值,Java的浮点型默认为double型,因为它的精度更高,是float的两倍。
双精度double8,-1.798E38
~1.798E38
字符类型char1字符=2字节Java用Unicode编码,一个字符可存储一个字母/汉字/其他书面语的一个字符,所以可进行运算。字符型变量三种形式:字符常量用单引号(‘ ’)括起来的单个字符。char c1 = 'a'; char c2 = '中'; 转义字符‘’来将其后的字符转变为特殊字符型常量。char c3 = ‘ ’, ' '表示换行符;Unicode值表示字符型常量:‘㌱’。其中,XXXX代表一个十六进制整数。 表示
布尔类型boolean布尔型只能取两个值:true或false,不能用0或非 0 的整数替代false和true。常常在条件判断和循环结构中使用。9.1.2.String类型
String字符串属于引用数据类型,声明时,使用一对" ",可与8种基本数据类型做连接运算:+;运算结果为String类型。
9.2.基本数据类型转换
9.2.1.自动类型转换
容量小的类型自动转换为容量大的数据类型。
容量大小排序:byte/char/short > int > long > float > double。
多种数据类型混合运算时,系统首先自动将所有数据转换成运算中数据类型容量最大的类型,然后再进行计算,容量小的数据类型与容量大的数据类型做运算时,结果自动提升为容量大的数据类型,容量大小指表示数的范围的大和小。比如:float容量要大于long的容量。
byte、short、char之间不会相互转换,它们计算时首先转换为int类型;boolean类型不能与其它基本数据类型运算。
任何基本数据类型和字符串(String)连接运算时(+),都会自动转化为字符串类型;一个字符串可串接另一个字符串,也可直接串接其他类型的数据。
原则:小类型可用大类型去接收;小类型遇到大类型会自动转化为大类型;一切类型遇到字符串都会转化为字符串。
9.2.2.强制类型转换
自动类型转换的逆过程,将容量大的数据类型转换为容量小的数据类型。转换时使用强制转换符:(),可能造成精度降低或溢出。
格外要注意:字符串不能直接转换为基本类型,但通过基本类型对应的包装类则可实现把字符串转换成基本类型。boolean类型不可以转换为其它的数据类型。
将String类型转成基本数据类型时,如可把 "123" , 转成一个整数,但不能把 "hello" 转成一个整数;如果格式不正确,就会抛出异常,程序就会终止。
10.进制和编码
10.1.进制
数字在计算机底层以二进制形式存在,并以数字的补码方式存储数据。整数有四种表示方式
二进制(binary):0,1,满2进1,以0b或0B开头;
十进制(decimal):0-9,满10进1;
八进制(octal):0-7,满8进1,以数字0开头表示 ;
十六进制(hex):0-9及A-F,满16进1,以0x或0X开头表示,此处A-F不区分大小写:0x21AF + 1 = 0X21B0。
10.2.原码、反码和补码
有符号数的二进制最高位:0表示正数,1表示负数;正数的原码、反码和补码都一样;负数的反码=原码符号位不变,其它位取反;负数的补码=反码+1,负数的反码=负数的补码-1;0的反码和补码都是0;java没有无符号数,换言之Java中的数都是有符号的;在计算机运算时,都是以补码方式来运算;看运算结果时,要看它的原码。
11.运算符
运算符是一种特殊的符号,用以表示数据的运算、赋值和比较等。
^异或、逻辑运算符用于连接布尔型表达式,如Java把3<x<6写成x>3 & x<6 。
位运算符<<、>>、>>>、&、|、^、~<<是左移,再一定范围内,每向左1位,相当于*2,>>>无符号右移,位运算是直接对整数的二进制进行的运算 三元运算符结构(条件表达式)?表达式1 : 表达式2条件为true执行表达式1,否则执行表达式2。11.1.算术运算符和赋值运算符
11.2.比较运算符(关系运算符)、逻辑运算符和位运算符
算术运算符、赋值运算符、关系运算符、逻辑运算符、位运算符和条件运算符:优先级别最低的是赋值运算符,可通过()小括号控制表达式的运算顺序。()优先级最高,从右向左结合性的只有赋值运算符、三目运算符和单目运算符;算术运算符 > 关系运算符 > 逻辑运算符。
=和==的区别:== 是比较运算符,结果为boolea值;= 是赋值运算符,把右边的值通过等号传递到左边。大于、小于、大于等于、小于等于只支持左右两边都是数值;== 和 !=两边的操作数可以是数值类型和引用类型;字符串的比较用equals。
11.3.三元运算符
三元运算符可用if-else替换,反之不成立。如果程序即可用三元运算符,也可用if-esle结构,优先选择三元运算符,效率高。
三目运算符/三元运算符:条件?表达式1:表达式2。条件为true执行表达式1否则执行表达式2。表达式1和表达式2类型相同;条件表达式是boolean类型;三元运算符可嵌套使用。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/7933.html