第二章 JAVA语言基础

一、关键字

1、关键字的定义和特点

定义:被Java语言赋予了特殊含义的单词

特点:关键字中所有的字母都为小写

2、用于定义数据类型的关键字

c;ass  interface  byte  short  int  long  float  double  char  boolean  void

3、用于定义数据类型值的关键字

true  false  null

4、用于定义流程控制的关键字

if  else  switch  case  default  while  do  for  break  continue  return

5、用于定义访问权限修饰符的关键字

private  protected public

6、用于定义类,函数,变量修饰符的关键字

abstract  final  static  synchronized

7、用于定义类与类之间的关键字

extends  implements

8、用于定义实例及引用实例,判断实例的关键字

new  this  super  instanceof

9、用于异常处理的关键字

try  catch  finally  throw

10、用于包的关键字

package  import

11、其他修饰符关键字

native  strictfp  transient  volatile  assert

二、标识符

在程序中自定义的一些名称

由26个英文字母大小写,数字,下划线_,美元符$组成

定义合法标识符规则:

1、数字不可以开头

2、不可以使用关键字

Java严格区分大小写

三、注释和转义

用于注解说明程序中的文字

// 单行注释

/**/ 多行注释

\n:回车符

\t:制表符

\b:退格

\r:换行符

对于windows系统的换行为\n\r,linux系统为\n

四、常量和变量

1、常量

常量表示不能改变的数值

常量的分类:

1、整数常量,所有整数

2、小数常量,所有小数

3、布尔型常量,true 和 false

4、字符常量,将一个数字字母或者符号用单引号(’’)标识

5、字符串常量,将一个或多个字符用双引号(””)标识

6、null常量,只有一个数值null

对于整数常量,有四种形式

二进制:0-1,满二进一

八进制:0-7,满八进一,用0开头表示

十进制:0-9,满十进一

十六进制:0-9,A-F,满十六进一,用0x开头表示

2、变量

变量的概念:

内存中的一个存储区域

该区域有自己的名称(变量名)和类型(数据类型)

该区域的数据可以在同一类型范围内不断变化

为什么要定义变量:

用来不断的存放同一类型的常量,并可以重复使用

使用变量注意:

变量的作用范围(一对{}之间有效)

初始化值

定义变量的格式:

数据类型 变量名=初始化值

3、数据类型

Java语言是强类型,对于每一种数据都定义了明确的具体数据类型,在内存总分配了不同大小的内存空间

基本数据类型

数值类型

整数类型 byte,short,int,long

浮点类型 float,double

字符类型 char

布尔型 boolean

引用数据类型

类 class

接口 interface

数组 []

4、类型转换

自动类型转换(也叫隐式类型转换)

强制类型转换(也叫显示类型转换)

类型转换的原理

表达式的数据类型自动提升

所有的byte型,short型,char的值将被提升到int型

如果一个操作数是long型,计算结果是long型

如果一个操作数是float型,计算结果是float型

如果一个操作数是double型,计算机结果是double型

Interger.MAX_VALUE  //获取数据类型的最大值

五、运算符

算术运算符 +、-、*、/、%

赋值运算符 =、+=、-=、*=、/=、%=  (+=等操作自动会在底层做类型转换后赋值)

比较运算符 >、=、<=、instanceog

逻辑运算符 &、|、^、&&、||、! (&&与&的区别在于&&当一边不成立时结束逻辑)

位运算符 <>、>>>、&、|、^、~

三元运算符 (条件表达式)?表达式1:表达式2;

六、程序流程控制

1、判断结构

if(条件表达式)

{

执行语句;

}else if(条件表达式)

{

执行语句;

}else{

执行语句;

}

2、选择结构

switch(条件)

{case取值1:

执行语句;break;case取值2:

执行语句;break;default:

执行语句;

}

3、循环结构

初始化表达式;while(条件表达式)

{

执行语句;(循环体)

循环操作表达式;

}

初始化表达式;do{

执行语句;(循环体)

循环操作表达式;

}while(条件表达式);for(初始化表达式;循环条件表达式;循环后的操作表达式)

{

执行语句;(循环体)

}

//与while循环的区别,for循环初始化表达式循环结束后自动从内存消除

4、流程控制语句

break:跳出当前循环continue:跳出本次循环

七、函数

1、函数的定义

函数就是定义在类中的具有特定功能的一段独立小程序。函数也称为方法。

2、函数的格式

修饰符 返回值类型 函数名(参数类型 形式参数1, 参数类型 形式参数2)

{

执行语句;return返回值;

}

3、函数的特点

定义函数可以将功能代码进行封装,便于对该功能进行复用

函数只有被调用才会被执行,提高代码的复用性

对函数没有具体返回值的情况,返回类型用关键字void表示

函数中只能调用函数,不可以在函数内部定义函数

定义函数时,函数的结果应该反悔给调用者,交由调用者处理

4、函数的重载(overload)

概念:在同一个类中,允许存在一个以上同名函数,只要他们的参数个数或参数类型不同即可。

特点:与返回值类型无关,只看参数列表

好处:方便了阅读,优化了程序设计

八、内存

1、寄存器

存储指令、数据和位址,控制部件中包含指令寄存器(IR)和程序计数器(PC),算术及逻辑部件包含累加器(ACC)

2、本地方法区

3、方法区

4、栈内存

存储局部变量, 变量在所属作用域结束,立即被释放

5、堆内存

存储数组和对象(其实数组就是对象),凡是new建立在堆中

特点:

1、每个尸体都有首地址值

2、堆内存中的每一个键都有默认初始化值,根据类型的不同而不同

3、垃圾回收机制

九、数组

1、数组的概念

同一种类型数据的集合,数组就是个容器。

2、数组的好处

可以自动给数组的元素从0开始编号,方便操作这些元素

3、数组的格式

格式1:

元素类型[] 数组名 = new 元素类型[元素个数或数组长度]

示例:int[] arr=new int[5]

格式2:

元素类型[] 数组名 = new 元素类型[元素个数或数组长度]

示例:int[] arr=new int[]{3,4,5,6}

4、数组的遍历

使用for循环遍历for(int x=0;x

{

System.out.println(“arr[“+x+”] = ”+arr[x]+”;”);

}

使用foreach遍历

5、数组的常用算法

import java.util.*;

Arrays.sort(arr);//数组排序

Arrays.binarySearch(arr,5); //数组查找

Integet.toBinaryString(60); //十进制转二进制

Integet.toOctalString(60); //十进制转八进制

Integet.toHexString(60); //十进制转十六进制

1、获取数组中的最大值

public static int getMax(int[] arr)

{if(arr.length<1){return 0;

}int max=arr[0];int len =arr.length;for(int x=1;x< len;x++)

{if(arr[x]>max)

{

max=arr[x];

}

}returnmax;

}

2、选择排序

public static int[] selectsord(int[] arr)

{int len =arr.length;for(int x=0;x

{for(int y=x+1;yarr[y])

{int temp =arr[x];

arr[x]=arr[y];

arr[y]=temp;

}

}

}returnarr;

}

选择排序优化版

public static int[] selectsord(int[] arr)

{int len =arr.length;for(int x=0;x

{int num=arr[x];int index=x;for(int y=x+1;yarr[y])

{

num=arr[y];

index=y;

}

}if(num !=arr[x]){int temp =arr[x];

arr[x]=num;

arr[index]=temp;

}

}returnarr;

}

3、冒泡排序

public static int[] bubblesort(int[] arr)

{int len =arr.length;for(int x=0;x

{for(int y=0;yarr[y+1])

{int temp =arr[y];

arr[y]= arr[y+1];

arr[y+1] =temp;

}

}

}returnarr;

}

4、普通查找

public static int getIndex(int[] arr,intvalue)

{int len=arr.length;for(int x=0;x

{if(arr[x] ==value){returnx;

}

}return -1;

}

5、二分法查找

public static int halfSearch(int[] arr,intvalue)

{intmin,mid,max;

min= 0;

max= arr.length-1;while(min <=max)

{

mid= (min+max)/2;if(arr[mid]

min= mid+1;else if(arr[mid] >value)

max= mid -1;else

returnmid;

}return -1;

}

6、进制转换

public static void scale(int num,intscale)

{if(num == 0)

{

System.out.print(0);return;

}char[] cls = {'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};char[] arr = new char[32];int pos =arr.length;int k=1,j=0;while(k

{

k*= 2;

j++;

}while(num != 0)

{int temp = num & (scale-1);

arr[--pos] =cls [temp];

num= num >>>j;

}for(int a=pos;a

{

System.out.print(arr[a]);

}

}

十、二维数组

1、特点

数组中的数组

2、格式

格式1:int[][] arr= new int[3][2];

格式2:int[][] arr= new int[3][];

格式3:int[][] arr = {{1,2,3},{4,5,6},{7,8,9}};

java语言定义一个具备栈功能的类_Java学习笔记 第二章 Java语言基础相关推荐

  1. java编程定义一个表示学生信息的类student_要求如下_用JAVA定义一个学生类Student来表示学生信息,学生类中包含成员有学号(id)、姓名(name)、年龄和成绩...

    展开全部 如下所示: public class Student { private int sNo; //学号 private String name; //姓名 private String sex ...

  2. 《Go语言圣经》学习笔记 第二章 程序结构

    Go语言圣经学习笔记 第二章 程序结构 目录 命名 声明 变量 赋值 类型 包和文件 作用域 注:学习<Go语言圣经>笔记,PDF点击下载,建议看书. Go语言小白学习笔记,几乎是书上的内 ...

  3. 《Go语言圣经》学习笔记 第一章 Go语言入门

    Go语言圣经学习笔记 第一章 Go语言入门 目录 Hello, World 命令行参数 查找重复的行 GIF动画 获取URL 并发获取多个URL Web服务 本章要点 注:学习<Go语言圣经&g ...

  4. Web前端开发笔记——第二章 HTML语言 第四节 超链接标签

    目录 前言 一.超链接标签 (一)链接其它子网页 (二)链接其它站点 (三)虚拟超链接 二.从当前页面链接到指定位置 三.链接的访问情况 四.在新窗口中打开链接 例题 结语 前言 本节介绍超链接标签即 ...

  5. JavaSE入门0基础笔记 第二章Java基础语法

    JavaSE入门0基础笔记 第二章Java基础语法 1.运算符 1.1算术运算符 1.1.1运算符和表达式 1.1.2 算术运算符 1.1.3字符的"+"操作 1.1.4 字符串中 ...

  6. [go学习笔记.第二章] 2.go语言的开发工具以及安装和配置SDK

    一.工具介绍: 1.Visual Studio Code 一个运行于Mac,Windows,和linux上的,默认提供Go语言的语法高亮的IED,可以安装Go语言插件,还可以支持智能提示,编译运行等功 ...

  7. JAVA测试题-定义一个运动员(Sportsman)类,包含姓名(name)、跳高(highJump)

    定义一个运动员(Sportsman)类,包含姓名(name).跳高(highJump).跳远(longJump),鞍马(sideHorse)属性以及speak()方法,该方法的功能是,输出自己的相关信 ...

  8. Java实验——定义一个表示学生信息的类Student,要求如下:

    目录 一.题目要求 二.解题思路 三.具体代码 四.运行截图 一.题目要求 定义一个表示学生信息的类Student,要求如下: (1)类Student的成员变量: sNO 表示学号:sName表示姓名 ...

  9. 使用java实现面向对象编程第二章_java面向对象编程——第二章 java基础语法

    第二章 java基础语法 1.java关键字 abstract boolean break byte case catch char class const continue default do d ...

最新文章

  1. 数据库事务系列-事务模型基础
  2. C++ Primer 5th笔记(chap 12 动态内存)unique_ptr
  3. PyTorch入门v2.pptx
  4. 深度解读Microsoft Build 2020:提升开发效率,优化开发环境
  5. 中小企业大数据应用之道:思维在于借力
  6. Java8 stream().map()将对象转换为其他对象
  7. JSK-389 同因查找【入门】
  8. 清华姚班和100个张小龙
  9. 在美团,我从暑期实习到转正
  10. 阿里云,腾讯云CDN谁更胜一筹?
  11. NLP文本分类--词向量
  12. PaddleHub创意作品 -无价之姐之三十而已
  13. PVM振动测量2018~2020调研整理
  14. 微信公众号 html5 打赏,微信公众号赞赏功能升级,以后可直接打赏作者了!
  15. HTTP 000 CONNECTION FAILED for url <https://repo.anaconda.com/pkgs/main/linux-64/tqdm-4.64.0-py39h06
  16. python小游戏经典猫和老鼠
  17. 无线定位技术实验二 TDOA最小二乘定位法
  18. 用户画像标签体系包括哪些维度?有哪些应用场景?(附完整导图)
  19. 对某安卓应用进行分析爬取课表数据制作懒人课表(二)
  20. 实验记录 | 6/2 somatic.pl

热门文章

  1. 论文理解(一)树形lstm
  2. 应该如何理解mobx_如何使用mobx观察observable数组上的object.property更改
  3. R交互图_shiny包
  4. poj 1160 Post Office(DP简单题)
  5. 我发起了一个 .Net Core 平台上的 分布式缓存 开源项目 ShareMemory 用于 取代 Redis...
  6. WPF:Documents文档--Annomation批注(1)
  7. nginx关闭favicon.ico日志
  8. LibreOffice的使用技巧
  9. 使用Nemiver调试器来调试 C/C++ 程序
  10. Mybatis(四) 高级映射,一对一,一对多,多对多映射