Java基础

Java基础

1. Java三大版本

  1. JavaSE:标准版(桌面程序,控制台开发)
    JavaME:嵌入式开发(手机,小家电)
    JavaEE:E企业级开发(web客户端,服务器开发…)

  2. JDK:Java Development Kit

    JDK是Java Development Kite的缩写,意思是Java语言的软件开发工具包。它是一种用于构建在Java平台上发布的应用程序、applet和组件的开发环境;它是一种最基本的工具。JDK是整个java开发的核心。它不提供具体的开发软件,它提供的是无论你用何种开发软件写Java程序都必须用到的类库和Java语言规范。

  3. JRE:Java Runtime Environment

    JRE是Java Runtime Environment的缩写,指Java运行环境,是Sun的产品。运行JAVA程序所必须的环境的集合,包含JVM标准实现及Java核心类库。JRE是用java编写的程序运行时所必须的一些文件,没有它们java程序就不能运行。

  4. JVM:Java Virtual Machine(Java 虚拟机)

    Java虚拟机,是一个虚构出来的计算机,本质上是一个程序。任何平台上只要装有针对于该平台的Java虚拟机,字节码文件就可以在该平台上运行。Java语言的可移值性正是建立在Java虚拟机的基础上。

  5. JDK和JRE的关系

    JDK > JRE,也就是说JDK已经包含了JRE,安装JDK时候如果没有JRE,会自动安 上。JDK是java开发套件,是提供给开发人员的。JRE是java运行环境,是提供给使用者的,使用者只关心这个程序能不能用,而不关心他是怎么运行的。所以提供的JRE是供使用者下载的。

2. Java的包

是用来封装一组类、子包和接口的,相当于文件系统中的文件夹。

3. 注释

  1. 单行注释://注释文字
  2. 多行注释:/*注释文字 */
  3. 文档注释:/**注释文字 */

4. 基本数据类型

在Java中,一共有8种基本数据类型,其中有4种整型、2种浮点类型、1种用于表示Unicode编码的字符类型char和1种用于表示真值的boolean类型。

数据类型描述占用字节
int整型,用于存储整数4
byteJava中最小的数据类型1
short短整型2
long长整型8
float浮点型,用于存储带小数点的数字4
double双精度浮点型,用于存储带有小数点的数字8
char字符型,用于存储单个字符2
boolean布尔类型,用于判断真或假1

5. 常量

在程序执行过程中,其值不会发生改变的量。
字面值常量

  1. 字符串常量(双引号):“abc”
  2. 字符常量(单引号): ‘a’,‘0’
  3. 整型常量: 12,34
  4. 小数常量: 1.2
  5. 布尔常量: true和false
  6. 空常量: null

6. 变量

  1. 含义:在程序执行过程中,其值可以在某个范围内发生改变的量。
  2. 变量的本质是内存中的一小块区域。
  3. 变量的定义格式:数据类型 变量名 = 初始化值
  4. 变量的作用域:只在它(定义的位置)所属的代码块内有效。(代码块:一对大括号范围内的代码,称为一个代码块。)
  5. 注意事项:
    变量未赋值,不能使用。
    一行上可以定义多个变量,但不建议这样使用。

7. 关键字

特点:

  • 组成关键字的字母全都小写。
  • 常见的代码编辑器对关键字有特殊的颜色标记。
    常见关键字
  1. 用于定义流程控制的关键字:if、else、switch、case、default、for、while、do、break、continue、return
  2. 用于定义访问权限的关键字:public、protected、private
  3. 用于定义类、函数、变量修饰符的关键字:abstract、final、static、synchronized
  4. 用于定义类与类之间关系的关键字:extends、implements
  5. 用于定义建立实例、引用实例、判断实例的关键字:new、this、super、instanceof
  6. 用于处理异常的关键字:try、catch、finally、throw、throws
  7. 用于包的关键字:package、import
  8. 其它关键字:native、strictfp、transient、volatile、assert

8. Java语言编码规范

  1. 大括号成对,对齐写(左大括号在最后,右大括号与首字母对齐)
  2. 左大括号前有空格
  3. 代码缩进(例如:第一行后面有大括号,第二行前面有缩进)
  4. 方法和程序块之间空行
  5. 并排语句加空格
  6. 运算符两侧加空格

9. 标识符

标识符(identifier)是指用来标识某个实体的一个符号,在不同的应用环境下有不同的含义。在计算机编程语言中,标识符是用户编程时使用的名字,用于给变量、常量、函数、语句块等命名,以建立起名称与使用之间的关系。

Java标识符的命名规则:

(1).Java标识符是由数字、字母、下划线、美元符号($)或人民币符号(¥)组成的。

(2).首字母不能是数字。

(3).不能把关键字和保留字作为标识符。(保留字指在高级语言中已经定义过的字,使用者不能再将这些字作为变量名或过程名使用。)

(4).标识符对大小写敏感。

Java标识符的命名规范

  • 类和接口:首字母大写,如果有多个单词,每个单词的首字母大写:HelloWorld

  • 变量和方法:首字母小写,如果有多个单词,从第二个单词开始首字母大写:getName

  • 常量名(自定义常量):所有字母都大写,多个单词用下划线隔开,MAX_VALUE

  • 包名:全部小写,如果有多级,用点号(.)隔开,遵循域名反写的格式:cn.itcast.demo

    10. 数据类型转换

  1. 类型转换的分类
    自动类型转换: 小类型转换为大类型,自动提升为大类型,运算结果是大类型
    强制类型转换:手动将大类型转换成小类型,运算结果是小类型

  2. 转换格式:小类型 变量名 = (小类型)大类型数据;
    目标类型 变量名 = (目标类型)要转换的值

  3. 数据类型的范围从小到大:byte、short、char——>int(默认的整型)——>long——>float——>double(默认的浮点类型)
    boolean类型不参与比较

11. 标识符

标识符(identifier)是指用来标识某个实体的一个符号,在不同的应用环境下有不同的含义。在计算机编程语言中,标识符是用户编程时使用的名字,用于给变量、常量、函数、语句块等命名,以建立起名称与使用之间的关系。
Java标识符的命名规则:

  • Java标识符是由数字、字母、下划线、美元符号($)或人民币符号(¥)组成的。
  • 首字母不能是数字。
  • 不能把关键字和保留字作为标识符。(保留字指在高级语言中已经定义过的字,使用者不能再将这些字作为变量名或过程名使用。)
  • 标识符对大小写敏感。

Java标识符的命名规范 :

  • 类和接口:首字母大写,如果有多个单词,每个单词的首字母大写:HelloWorld

  • 变量和方法:首字母小写,如果有多个单词,从第二个单词开始首字母大写:getName

  • 常量名(自定义常量):所有字母都大写,多个单词用下划线隔开,MAX_VALUE

  • 包名:全部小写,如果有多级,用点号(.)隔开,遵循域名反写的格式:cn.itcast.demo

    12. 运算符

  1. 运算符的定义:对常量和变量进行运算操作的符号。

  2. 自增和自减运算符:++自增1;–自减1
    单独使用放在前后结果一样
    参与运算时:在变量前,先自增(自减),再进行其它运算;在变量后,先以原值进行其它运算,再自增(自减)

  3. 常见的运算符包括算数运算符、赋值运算符、关系运算符、逻辑运算符、三元运算符。
    a.算数运算符包括+、-、* 、/、%、++、–
    b.赋值运算符即用于给变量赋值的运算符
    常见的赋值运算符包括基本赋值运算符(=)和扩展赋值运算符(+=、-=、/=、*=、%=)
    c.关系运算符是用来描述两个变量之间的关系
    关系运算符包括==、!=、>、>=、<、<=
    d.逻辑运算符包括:&&(与)、||(或)和!(非)(注意偶数个逻辑非,不变)
    e.三元运算符(条件运算符):(关系表达式)?表达式1:表达式2

  4. 位运算符:位运算符对整数的二进制形式逐位进行逻辑运算,得到一个整数。
    位运算符包括:&(与):如果相对应位都是1,则结果为1,否则为0。
    |(或):如果相对应位都是0,则结果为0,否则为1。
    ^(异或):如果相对应位值相同,则结果为0,否则为1。
    ~(非):按位取反,即0变成1,1变成0。
    <<(右移):按位左移运算符,左操作数按位左移右操作数指定的位数。正数在高位补0,负数在高位补1。 >>(左移):按位右移运算符,左操作数按位右移右操作数指定的位数。 >>>(无符号右移):无论正负,最高位都补0。

    13. equals与==的区别

  5. ==是一个比较运算符,用于比较基本类型的值是否相同或者引用类型的内存地址是否相同。

  6. equals是一个方法,只能比较引用数据类型,用于判断两个变量是否是对同一个对象的引用。如果没有重写equals方法比较的是两个对象的地址值。如果重写equals方法后我们往往比较的是对象中的属性的内容。

  7. " == “比"equals"运行速度快,因为” == "只是比较引用。

    14. 一维数组

  8. 一维数组是由数字组成的以单纯的排序结构排列的结构单一的数组。一维数组是计算机程序中最基本的数组。

  9. 定义格式

    类型标识符 数组名【常量表达式】 (常量表达式表示数组元素的个数。可以是常量或符号常量,不能为变量。)

  10. 通过给出的数组名称和这个元素在数组中的位置编号(即下标),程序可以引用数组中的任意一个元素。

  11. 例如:int a[10]:
    其中,a是一维数组的数组名,该数组有10个元素,依次表示为a[0] a[1] a[2] a[3] a[4] a[5] a[6] a[7] a[8] a[9]。需要注意的是,a[10]不属于这一个数组的空间范围中。当在说明部分定义了一个数组变量后,编译程序会在内存空间中开辟一串连续的存储单元。对于数组而言,程序的执行部分使用的是数组变量而不是数组类型。需要注意的是:在引用时,下标可以是整型变量或整型表达式。如果使用表达式,会先计算表达式以确定下标。程序只能逐个应用数组中的元素而不能一次引用整个数组。如:int a[100],b[100]; a=b;//这是非法的

  12. 初始化

    数组的初始化可以在定义时一并完成。格式如下:int a[5]={1,2,3,4,5};特别地,若要把数组中所有元素全部初始化为0,可以简记为:{0}。

  13. 定义一个数组的两种格式

    数据类型 数组名[常量表达式]

    数据类型 [常量表达式]数组名

    type arrayName[];

    type[] arrayName; (推荐这种)

  14. 数组length的含义

    length代表的是长度,作为数组的一个属性,就是里面元素的个数

  15. 数组是否可以用一个变量定义大小

    使用new的时候可以。

  16. 对Java多维数组的理解

    Java的多维数组可以看作数组的数组,就是n维数组是n-1维数组的数组

    三维数组[2][3][4]就是有两个二维数组,每个二维数组有3个一维数组,每个一维数组有4个元素。

15. 二维数组

二维数组本质上是以数组作为数组元素的数组,即“数组的数组”。

格式:类型说明符 数组名[常量表达式]。

例如:float a[3][4],b[5][10];
定义a为3 * 4(3行4列)的数组,b为5*10(5行10列)的数组。注意,不能写成float a[3,4],b[5,10];

行序号和列序号的下标都是从 0 开始的。元素 a[i] [j] 表示第 i+1 行、第 j+1 列的元素。数组 int a[m] [n] 最大范围处的元素是 a[m–1] [n–1]。所以在引用数组元素时应该注意,下标值应在定义的数组大小的范围内。

可以用下面的方法对二维数组进行初始化。

  1. 分行给二维数组赋初值,比如上面程序的赋值方法:

    int a[3][4] = {{1, 2, 3, 4}, {5, 6, 7, 8}, {9, 10, 11, 12}};

这种赋初值的方法比较直观,将第一个花括号内的数据赋给第一行的元素、第二个花括号内的数据赋给第二行的元素……即每行看作一个元素,按行赋初值。

  1. 也可以将所有数据写在一个花括号内,按数组排列的顺序对各元素赋初值。比如:

    int a[3][4] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12};

效果与第 1 种是一样的。但第1种方法更好,一行对一行,界限清楚。第 2 种方法如果数据多,写成一大片,容易遗漏,也不易检查。

  1. 也可以只对部分元素赋初值。比如:

    int a[3][4] = {{1, 2}, {5}, {9}};

它的作用是对第一行的前两个元素赋值、第二行和第三行的第一个元素赋值。其余元素自动为 0。

  1. 如果在定义数组时就对全部元素赋初值,即完全初始化,则第一维的长度可以不指定,但第二维的长度不能省。比如:

    int a[3][4] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12};

等价于:

int a[][4] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12};

系统会根据数据总数和第二维的长度算出第一维的长度。但这种省略的写法几乎不用,因为可读性差。

  1. int a[3][4]={0};
    二维数组“清零”,里面每一个元素都是零。

16. 数组的遍历

方法一:

使用for循环进行遍历通常遍历数组都是使用for循环来实现的。
遍历二维数组需要使用双层for循环,通过数组的length属性可获得数组的长度。

方法二:

使用foreach对数组进行遍历这种循环遍历数组和集合更加简洁。使用foreach循环遍历数组时,无须获得数组和集合长度,无须根据索引来访问数组元素,foreach循环自动遍历数组和集合的每一个元素。
注意:使用foreach循环迭代数组元素时,并不能改变数组元素的值,因此不要对foreach的循环变量赋值。

方法三:

Arrays工具类中toString静态方法遍历利用Arrays工具类中的toString静态方法可以将一维数组转化为字符串形式并输出

17. 作用域

Java作用域public、private、protected及不写的区别

1.public(公有的):可以被该类的和非该类的任何成员访问。

2.private(私有的):仅仅可以被该类的成员访问,任何非该类的成员一概不能访问。

3.protected(保护的):仅仅可以被子类和类本身还有同一个包里的访问。

4.不写(默认):在这种情况下,只能在同一个包内访问。

18. API

API是用来负责一个程序和其它软件进行沟通的编程接口。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值