java基础知识一

java基础知识一1 Java 基础知识图解 java 基础知识一 2 技术体系平台 1995 年 Sun 公司推出的高级编程语言 2010 年被 Oracle 公司收购 Java SE Java Standard Edition 标准版 面向桌面级应用 提供完整的 Java 核心 API Java EE Java Enterprise

大家好,我是讯享网,很高兴认识大家。



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.注释

类型 格式 说明单行注释//  注释文字单行和多行注释,被注释的文字,不会被JVM解释执行,不参与程序编译和运行;多行注释里不允许多行注释嵌套;文档注释的内容可被JDK提供的工具 javadoc 所解析,生成一套以网页文件形式体现的该程序的说明文档,操作方式: javadoc -d mydoc -author -verdion 源文件名称.java多行注释/* 注释文字 */文档注释 (java特有)/
@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.关键字和保留字

        被赋予特殊含义、专门用途的字符串(单词),并且字母要小写,在程序中不能另作它用。

用于定义数据类型的关键字classintefaceenumbyteshortintlongfloatdoublecharbooleanvoid 用于定义流程控制的关键字ifelseswitchcasereturnwhiledoforbreakcontinue 用于定义访问权限修饰符的关键字privateprotectedpublicdefault 用于定义类,函数,变量修饰符的关键字abstractfinalstaticsynchronized 用于定义类与类之间关系的关键字extendsimplements 用于定义建立实例及引用实例,判断实例的关键字newthissuperinstanceof 用于异常处理的关键字trycatchfinallythrowthrows 用于包的关键字packageimport 其他修饰符关键字nativestrictfptransientvolatileassert 用于定义数据类型值的字面值truefalsenull

        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中每个变量必须先声明和赋值才能使用,用变量名可访问这块区域的数据。作用域:在定义内的一对{ }中,只有在其作用域中才有效,同一个作用域,不能定义重名的变量。

类型 语法 举例 声明变量数据类型 变量名称;int var; 变量赋值变量名称 = 值;var = 10; 声明和赋值变量数据类型 变量名 = 初始化值; int var = 10;

        步骤:声明变量:根据数据类型在内存申请空间。赋值:将数据存储至对应的内存空间并赋值。作用域:规定变量所能使用的范围,只在其作用域内才能使用。

讯享网

8.3.成员变量和局部变量

        根据变量的声明位置分为成员变量和局部变量,并且都有各自的生命周期。

变量类型 分类 作用域 成员变量以static修饰为类变量,否则为实例变量声明再类里面,方法的外面,作用域是整个类 局部变量形参(方法、构造器中定义的变量)、方法局部变量(在方法内定义)和代码块局部变量(在代码块内定义)声明再方法内部,作用域是离它最近的一对大括号里,使用时必须谨慎初始化。局部变量除形参外,需显式初始化
 

9.Java数据

9.1 基本数据类型

        Java对每一种数据都定义明确具体的类型(强类型语言),在内存中分配了不同大小的内存空间。按照数据类型划分为基本数据类型和引用类型。

9.1.1.基本数据类型

基本数据类型 类型分类 类型 存储空间 范围和解释整数类型byte1字节=8bit位-128~127, bit: 计算机最小存储单位, byte:计算机基本存储单元short2字节-2^15~2^15-1int4字节-2^31~2^31-1,整型常量默认类型;不足以表示较大的数时使用longlong8字节-2^63~2^63-1,声明该类型时必须以"l"或"L"结尾,long id = 12452l浮点型型单精度float

4,-3.403E38

~3.403E38

声明float类型结尾加‘f’或‘F’,如:float num = 12.3f;float尾数可以精确到7位有效数字,表示数值的范围比long还大。

浮点型表示带小数点的数值,Java的浮点型默认为double型,因为它的精度更高,是float的两倍。

双精度double

8,-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.运算符

        运算符是一种特殊的符号,用以表示数据的运算、赋值和比较等。

名称 符号 其他 算术运算符+、-、*、/、%、++、--取模运算的结果的符号与被模数符号相同,结果不一定总是整数。除法时整数相除舍弃小数部分。加号能把非字符串转换成字符串 赋值运算符=、+=、-=、*=、/=、%=当“=”两侧数据类型不一致时,可以使用自动类型转换或使用强制类型转换原则进行处理。支持连续赋值。 比较运算符(关系运算符)==、!=、<、>、<=、>=、instanceof运算结果为boolean类型;instanceof是检查是否是类的对象。 逻辑运算符&、^、|、!、&&、||

^异或、逻辑运算符用于连接布尔型表达式,如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类型;三元运算符可嵌套使用。

 

12.面试

12.1.左移右移

小讯
上一篇 2024-12-28 20:07
下一篇 2024-12-29 15:10

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/7933.html