目录

  • 初始计算机和Java语言
    • JDK
      • 目录结构
      • 相关概念
      • 注释
      • 跨平台原理
  • Java语言的编程基础
    • 变量
      • 变量的基本概念
      • 变量的声明方式
      • 变量的命名法则
    • 数据类型
      • 数据类型分类
    • 常用的进制
    • 进制之间的转换
      • 单个字节表示的证书范围
      • 整数类型
      • 浮点类型
      • 布尔类型
      • 字符类型
      • 基本数据类型之间的转换
    • 运算符
      • 算术运算符
      • 字符串连接运算符
      • 关系/比较运算符
      • 自增减运算符
      • 逻辑运算符
      • 三目运算符
      • 赋值运算符
      • 移位运算符
      • 位运算符
      • 运算符优先级
  • 流程控制语句
    • 分支结构
    • 循环结构
      • **for**循环
      • ** 双重for循环**
      • while循环和for循环比较
  • 数组的概念及应用
    • 一维数组
      • 一维数组的基本概念
      • 一维数组的声明方式
      • 一维数组的初始化方式
      • 内存之栈区和堆区
      • 数组的优缺点
      • 数组工具
    • 二维数组

初始计算机和Java语言

JDK

目录结构

1.bin目录:该目录下主要存在JDK的各种工具命令
2.conf目录:该目录下主要存放了JDK的各种配置文件
3.include目录:该目录下主要存放了一些平台的头文件
4.jmods目录:该目录下主要JDK的各种模块
5.legal目录:该目录下主要存放了JDK各模块的授权文档
6.lib目录:该目录下主要存放JDK工具的一些补充jar包和源代码

相关概念

  1. JDK-称为Java开发工具包
  2. JRE-称之为Java SE运行时环境(Java SE Runtime Environment),提供 了运行Java应用程序所必须的软件环境等。无论是开发还是运行Java应用 都必须安装。
  3. javac.exe-编译器,主要用于将高级Java源代码翻译成字节码文件
  4. java.exe-解释器,主要用于启动JVM对字节码文件进行解释并执行

注释

// 单行注释,从//开始,到本行结束都是注释
/* /多行注释,从/开始,到/结束,都是注释
/* */文档注释,从/*开始,到/结束,是一种支持文档提取的注释

跨平台原理

Java字节码可以通过JVM翻译为具体平台能够执行的机器指令。由于Sun 定义了JVM规范,而且不同的操作系统大多提供了JVM实现,才使得相同 的一个字节码文件可以在不同的系统上运行,从而使Java赢得了“一次编 译,到处使用”的美名。

Java语言的编程基础

变量

变量的基本概念

当需要在程序中记录单个数据内容时,则声明一个变量即可,而声明变量的本事则是在程序中申请一块存储单元,由于该存储单元的数据内容可以发生改变,因此名为“变量”。
由于存放的数据内容大小不一样,倒是所需存储单元的大小不一样,在Java语言中需要使用数据的存储类型加以描述,为了便于下次访问,还需要给变量定一个名字,用于记录该变量对应的存储单元

变量的声明方式

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

其中 =初始值 可以省略,但是 ; 不能省略

变量的命名法则

由数字、字母、下划线以及$等组成,其中数字不能开头
不能使用Java语言的关键字
区分大小写,长度没有限制但不宜过长
尽量做到见名知意,支持中文但不推荐使用
标识符可以给类/变量/属性/方法/包 起名字

数据类型

数据类型分类

在Java中数据类型分为两大类

  1. 基本数据类型
    byte short int long float double char boolean
  2. 引用数据类型
    数组、类、接口、枚举、标注

常用的进制

在计算机的底层采用0和1组成的二进制序列进行数据的描述
二进制中的最高位(最左边)用于代表符号位,若该位是0则表示非负数,若该位是1则表示负数。
八进制和十六进制其实都是二进制的简写

进制之间的转换

负十进制转换为二进制的方式
先将十进制的绝对值转换为二进制,然后进行按位取反再加1
负数的需要补码:按位取反,再加1

负二进制转换为十进制的方式
先减1再按位取反,合并为十进制整数后添加负号

链接: 源码、补码、反码深入理解.

单个字节表示的证书范围

在计算机中的那个字节用八位二进制表示其中最左边代表符号位
使用0代表非负数,1代表负数,具体表示的整数范围如下

非负数表示范围:0000 0000 ~ 0111 1111 => 0 ~ 127 => 0 ~ 2^7 -1
负数表示范围:1000 0000 ~ 1111 1111 => -128 ~ -1 => -2^7 ~ -1
单个字节表示范围:-128 ~ 127

整数类型

Java中的整数类型有byte short int long 推荐用int(Java默认整数类型)
其中byte类型在内存空间中占用1个字节,表示范围是:-27 ~ 27-1
short类型在内存空间中占用2个字节,表示范围是:-215 ~ 215-1
int类型在内存空间中占用4个字节,表示范围是:-231 ~ 231-1
long类型在内存空间中占8个字节,表示范围是:-263 ~ 263-1.

在Java程序中直接写出的整数数据叫做直接量\常量\字面值,默认是int类型,若希望表达更大的直接量,则在直接量后面加l或者L,推荐用L

浮点类型

Java语言中用于描述小数数据的类型:float 和 double,推荐使用double类型
其中float类型在内存空间占4个字节,叫做单精度浮点数,可以表示7位有效数字,范围:-3.403E38~3.403E38
其中double类型在内存空间占8个字节,叫做双精度浮点数,可以表示15
位有效数字,范围:-1.798E308~1.798E308
Java程序中直接写出的小数数据叫做直接量,默认为double类型,若希望
表达float类型的直接量,则需要在直接量的后面加上f或者F

布尔类型

Java语言中用于描述真假信息类型有:boolean,数值只有:true 和 false
布尔类型在内存空间中所占大小没有明确的规定,可以认为是1个字节

字符类型

Java语言中用于描述单个字符的数据类型:char类型。
其中char类型在内存空间中占2个字节并且没有符号位,表示范围是 0~65535。
计算机的底层只识别0和1组成的二进制序列,对于字符’a’这样的图案来说不满足该规则,因此该数据无法直接在计算机中存储,但现实生活中存在这样的图案数据需要计算机存储,为了使得该数据能够存储起来就可以给该数据指定一个编号,然后将编号存储起来即可,该编号就叫做ASCII。

‘0’-48 ‘A’-65 ‘a’-97 ‘空格’-32 '换行’-10 (需要记忆)
Java字符类型采用Unicode字符集编码。Unicode是世界通用的定长字符集,所有的字符都是16位。
• 要求掌握的转义字符有:" - " ’ - ’ \ - \ \t - 制表符 \n - 换行符

基本数据类型之间的转换

Java语言中基本数据类型的转换方式:自动类型转换和强制类型转换

#mermaid-svg-hkmjkl7WbFqouoEN .label{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);fill:#333;color:#333}#mermaid-svg-hkmjkl7WbFqouoEN .label text{fill:#333}#mermaid-svg-hkmjkl7WbFqouoEN .node rect,#mermaid-svg-hkmjkl7WbFqouoEN .node circle,#mermaid-svg-hkmjkl7WbFqouoEN .node ellipse,#mermaid-svg-hkmjkl7WbFqouoEN .node polygon,#mermaid-svg-hkmjkl7WbFqouoEN .node path{fill:#ECECFF;stroke:#9370db;stroke-width:1px}#mermaid-svg-hkmjkl7WbFqouoEN .node .label{text-align:center;fill:#333}#mermaid-svg-hkmjkl7WbFqouoEN .node.clickable{cursor:pointer}#mermaid-svg-hkmjkl7WbFqouoEN .arrowheadPath{fill:#333}#mermaid-svg-hkmjkl7WbFqouoEN .edgePath .path{stroke:#333;stroke-width:1.5px}#mermaid-svg-hkmjkl7WbFqouoEN .flowchart-link{stroke:#333;fill:none}#mermaid-svg-hkmjkl7WbFqouoEN .edgeLabel{background-color:#e8e8e8;text-align:center}#mermaid-svg-hkmjkl7WbFqouoEN .edgeLabel rect{opacity:0.9}#mermaid-svg-hkmjkl7WbFqouoEN .edgeLabel span{color:#333}#mermaid-svg-hkmjkl7WbFqouoEN .cluster rect{fill:#ffffde;stroke:#aa3;stroke-width:1px}#mermaid-svg-hkmjkl7WbFqouoEN .cluster text{fill:#333}#mermaid-svg-hkmjkl7WbFqouoEN div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:12px;background:#ffffde;border:1px solid #aa3;border-radius:2px;pointer-events:none;z-index:100}#mermaid-svg-hkmjkl7WbFqouoEN .actor{stroke:#ccf;fill:#ECECFF}#mermaid-svg-hkmjkl7WbFqouoEN text.actor>tspan{fill:#000;stroke:none}#mermaid-svg-hkmjkl7WbFqouoEN .actor-line{stroke:grey}#mermaid-svg-hkmjkl7WbFqouoEN .messageLine0{stroke-width:1.5;stroke-dasharray:none;stroke:#333}#mermaid-svg-hkmjkl7WbFqouoEN .messageLine1{stroke-width:1.5;stroke-dasharray:2, 2;stroke:#333}#mermaid-svg-hkmjkl7WbFqouoEN #arrowhead path{fill:#333;stroke:#333}#mermaid-svg-hkmjkl7WbFqouoEN .sequenceNumber{fill:#fff}#mermaid-svg-hkmjkl7WbFqouoEN #sequencenumber{fill:#333}#mermaid-svg-hkmjkl7WbFqouoEN #crosshead path{fill:#333;stroke:#333}#mermaid-svg-hkmjkl7WbFqouoEN .messageText{fill:#333;stroke:#333}#mermaid-svg-hkmjkl7WbFqouoEN .labelBox{stroke:#ccf;fill:#ECECFF}#mermaid-svg-hkmjkl7WbFqouoEN .labelText,#mermaid-svg-hkmjkl7WbFqouoEN .labelText>tspan{fill:#000;stroke:none}#mermaid-svg-hkmjkl7WbFqouoEN .loopText,#mermaid-svg-hkmjkl7WbFqouoEN .loopText>tspan{fill:#000;stroke:none}#mermaid-svg-hkmjkl7WbFqouoEN .loopLine{stroke-width:2px;stroke-dasharray:2, 2;stroke:#ccf;fill:#ccf}#mermaid-svg-hkmjkl7WbFqouoEN .note{stroke:#aa3;fill:#fff5ad}#mermaid-svg-hkmjkl7WbFqouoEN .noteText,#mermaid-svg-hkmjkl7WbFqouoEN .noteText>tspan{fill:#000;stroke:none}#mermaid-svg-hkmjkl7WbFqouoEN .activation0{fill:#f4f4f4;stroke:#666}#mermaid-svg-hkmjkl7WbFqouoEN .activation1{fill:#f4f4f4;stroke:#666}#mermaid-svg-hkmjkl7WbFqouoEN .activation2{fill:#f4f4f4;stroke:#666}#mermaid-svg-hkmjkl7WbFqouoEN .mermaid-main-font{font-family:"trebuchet ms", verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-hkmjkl7WbFqouoEN .section{stroke:none;opacity:0.2}#mermaid-svg-hkmjkl7WbFqouoEN .section0{fill:rgba(102,102,255,0.49)}#mermaid-svg-hkmjkl7WbFqouoEN .section2{fill:#fff400}#mermaid-svg-hkmjkl7WbFqouoEN .section1,#mermaid-svg-hkmjkl7WbFqouoEN .section3{fill:#fff;opacity:0.2}#mermaid-svg-hkmjkl7WbFqouoEN .sectionTitle0{fill:#333}#mermaid-svg-hkmjkl7WbFqouoEN .sectionTitle1{fill:#333}#mermaid-svg-hkmjkl7WbFqouoEN .sectionTitle2{fill:#333}#mermaid-svg-hkmjkl7WbFqouoEN .sectionTitle3{fill:#333}#mermaid-svg-hkmjkl7WbFqouoEN .sectionTitle{text-anchor:start;font-size:11px;text-height:14px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-hkmjkl7WbFqouoEN .grid .tick{stroke:#d3d3d3;opacity:0.8;shape-rendering:crispEdges}#mermaid-svg-hkmjkl7WbFqouoEN .grid .tick text{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-hkmjkl7WbFqouoEN .grid path{stroke-width:0}#mermaid-svg-hkmjkl7WbFqouoEN .today{fill:none;stroke:red;stroke-width:2px}#mermaid-svg-hkmjkl7WbFqouoEN .task{stroke-width:2}#mermaid-svg-hkmjkl7WbFqouoEN .taskText{text-anchor:middle;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-hkmjkl7WbFqouoEN .taskText:not([font-size]){font-size:11px}#mermaid-svg-hkmjkl7WbFqouoEN .taskTextOutsideRight{fill:#000;text-anchor:start;font-size:11px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-hkmjkl7WbFqouoEN .taskTextOutsideLeft{fill:#000;text-anchor:end;font-size:11px}#mermaid-svg-hkmjkl7WbFqouoEN .task.clickable{cursor:pointer}#mermaid-svg-hkmjkl7WbFqouoEN .taskText.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-hkmjkl7WbFqouoEN .taskTextOutsideLeft.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-hkmjkl7WbFqouoEN .taskTextOutsideRight.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-hkmjkl7WbFqouoEN .taskText0,#mermaid-svg-hkmjkl7WbFqouoEN .taskText1,#mermaid-svg-hkmjkl7WbFqouoEN .taskText2,#mermaid-svg-hkmjkl7WbFqouoEN .taskText3{fill:#fff}#mermaid-svg-hkmjkl7WbFqouoEN .task0,#mermaid-svg-hkmjkl7WbFqouoEN .task1,#mermaid-svg-hkmjkl7WbFqouoEN .task2,#mermaid-svg-hkmjkl7WbFqouoEN .task3{fill:#8a90dd;stroke:#534fbc}#mermaid-svg-hkmjkl7WbFqouoEN .taskTextOutside0,#mermaid-svg-hkmjkl7WbFqouoEN .taskTextOutside2{fill:#000}#mermaid-svg-hkmjkl7WbFqouoEN .taskTextOutside1,#mermaid-svg-hkmjkl7WbFqouoEN .taskTextOutside3{fill:#000}#mermaid-svg-hkmjkl7WbFqouoEN .active0,#mermaid-svg-hkmjkl7WbFqouoEN .active1,#mermaid-svg-hkmjkl7WbFqouoEN .active2,#mermaid-svg-hkmjkl7WbFqouoEN .active3{fill:#bfc7ff;stroke:#534fbc}#mermaid-svg-hkmjkl7WbFqouoEN .activeText0,#mermaid-svg-hkmjkl7WbFqouoEN .activeText1,#mermaid-svg-hkmjkl7WbFqouoEN .activeText2,#mermaid-svg-hkmjkl7WbFqouoEN .activeText3{fill:#000 !important}#mermaid-svg-hkmjkl7WbFqouoEN .done0,#mermaid-svg-hkmjkl7WbFqouoEN .done1,#mermaid-svg-hkmjkl7WbFqouoEN .done2,#mermaid-svg-hkmjkl7WbFqouoEN .done3{stroke:grey;fill:#d3d3d3;stroke-width:2}#mermaid-svg-hkmjkl7WbFqouoEN .doneText0,#mermaid-svg-hkmjkl7WbFqouoEN .doneText1,#mermaid-svg-hkmjkl7WbFqouoEN .doneText2,#mermaid-svg-hkmjkl7WbFqouoEN .doneText3{fill:#000 !important}#mermaid-svg-hkmjkl7WbFqouoEN .crit0,#mermaid-svg-hkmjkl7WbFqouoEN .crit1,#mermaid-svg-hkmjkl7WbFqouoEN .crit2,#mermaid-svg-hkmjkl7WbFqouoEN .crit3{stroke:#f88;fill:red;stroke-width:2}#mermaid-svg-hkmjkl7WbFqouoEN .activeCrit0,#mermaid-svg-hkmjkl7WbFqouoEN .activeCrit1,#mermaid-svg-hkmjkl7WbFqouoEN .activeCrit2,#mermaid-svg-hkmjkl7WbFqouoEN .activeCrit3{stroke:#f88;fill:#bfc7ff;stroke-width:2}#mermaid-svg-hkmjkl7WbFqouoEN .doneCrit0,#mermaid-svg-hkmjkl7WbFqouoEN .doneCrit1,#mermaid-svg-hkmjkl7WbFqouoEN .doneCrit2,#mermaid-svg-hkmjkl7WbFqouoEN .doneCrit3{stroke:#f88;fill:#d3d3d3;stroke-width:2;cursor:pointer;shape-rendering:crispEdges}#mermaid-svg-hkmjkl7WbFqouoEN .milestone{transform:rotate(45deg) scale(0.8, 0.8)}#mermaid-svg-hkmjkl7WbFqouoEN .milestoneText{font-style:italic}#mermaid-svg-hkmjkl7WbFqouoEN .doneCritText0,#mermaid-svg-hkmjkl7WbFqouoEN .doneCritText1,#mermaid-svg-hkmjkl7WbFqouoEN .doneCritText2,#mermaid-svg-hkmjkl7WbFqouoEN .doneCritText3{fill:#000 !important}#mermaid-svg-hkmjkl7WbFqouoEN .activeCritText0,#mermaid-svg-hkmjkl7WbFqouoEN .activeCritText1,#mermaid-svg-hkmjkl7WbFqouoEN .activeCritText2,#mermaid-svg-hkmjkl7WbFqouoEN .activeCritText3{fill:#000 !important}#mermaid-svg-hkmjkl7WbFqouoEN .titleText{text-anchor:middle;font-size:18px;fill:#000;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-hkmjkl7WbFqouoEN g.classGroup text{fill:#9370db;stroke:none;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:10px}#mermaid-svg-hkmjkl7WbFqouoEN g.classGroup text .title{font-weight:bolder}#mermaid-svg-hkmjkl7WbFqouoEN g.clickable{cursor:pointer}#mermaid-svg-hkmjkl7WbFqouoEN g.classGroup rect{fill:#ECECFF;stroke:#9370db}#mermaid-svg-hkmjkl7WbFqouoEN g.classGroup line{stroke:#9370db;stroke-width:1}#mermaid-svg-hkmjkl7WbFqouoEN .classLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.5}#mermaid-svg-hkmjkl7WbFqouoEN .classLabel .label{fill:#9370db;font-size:10px}#mermaid-svg-hkmjkl7WbFqouoEN .relation{stroke:#9370db;stroke-width:1;fill:none}#mermaid-svg-hkmjkl7WbFqouoEN .dashed-line{stroke-dasharray:3}#mermaid-svg-hkmjkl7WbFqouoEN #compositionStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-hkmjkl7WbFqouoEN #compositionEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-hkmjkl7WbFqouoEN #aggregationStart{fill:#ECECFF;stroke:#9370db;stroke-width:1}#mermaid-svg-hkmjkl7WbFqouoEN #aggregationEnd{fill:#ECECFF;stroke:#9370db;stroke-width:1}#mermaid-svg-hkmjkl7WbFqouoEN #dependencyStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-hkmjkl7WbFqouoEN #dependencyEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-hkmjkl7WbFqouoEN #extensionStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-hkmjkl7WbFqouoEN #extensionEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-hkmjkl7WbFqouoEN .commit-id,#mermaid-svg-hkmjkl7WbFqouoEN .commit-msg,#mermaid-svg-hkmjkl7WbFqouoEN .branch-label{fill:lightgrey;color:lightgrey;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-hkmjkl7WbFqouoEN .pieTitleText{text-anchor:middle;font-size:25px;fill:#000;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-hkmjkl7WbFqouoEN .slice{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-hkmjkl7WbFqouoEN g.stateGroup text{fill:#9370db;stroke:none;font-size:10px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-hkmjkl7WbFqouoEN g.stateGroup text{fill:#9370db;fill:#333;stroke:none;font-size:10px}#mermaid-svg-hkmjkl7WbFqouoEN g.statediagram-cluster .cluster-label text{fill:#333}#mermaid-svg-hkmjkl7WbFqouoEN g.stateGroup .state-title{font-weight:bolder;fill:#000}#mermaid-svg-hkmjkl7WbFqouoEN g.stateGroup rect{fill:#ECECFF;stroke:#9370db}#mermaid-svg-hkmjkl7WbFqouoEN g.stateGroup line{stroke:#9370db;stroke-width:1}#mermaid-svg-hkmjkl7WbFqouoEN .transition{stroke:#9370db;stroke-width:1;fill:none}#mermaid-svg-hkmjkl7WbFqouoEN .stateGroup .composit{fill:white;border-bottom:1px}#mermaid-svg-hkmjkl7WbFqouoEN .stateGroup .alt-composit{fill:#e0e0e0;border-bottom:1px}#mermaid-svg-hkmjkl7WbFqouoEN .state-note{stroke:#aa3;fill:#fff5ad}#mermaid-svg-hkmjkl7WbFqouoEN .state-note text{fill:black;stroke:none;font-size:10px}#mermaid-svg-hkmjkl7WbFqouoEN .stateLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.7}#mermaid-svg-hkmjkl7WbFqouoEN .edgeLabel text{fill:#333}#mermaid-svg-hkmjkl7WbFqouoEN .stateLabel text{fill:#000;font-size:10px;font-weight:bold;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-hkmjkl7WbFqouoEN .node circle.state-start{fill:black;stroke:black}#mermaid-svg-hkmjkl7WbFqouoEN .node circle.state-end{fill:black;stroke:white;stroke-width:1.5}#mermaid-svg-hkmjkl7WbFqouoEN #statediagram-barbEnd{fill:#9370db}#mermaid-svg-hkmjkl7WbFqouoEN .statediagram-cluster rect{fill:#ECECFF;stroke:#9370db;stroke-width:1px}#mermaid-svg-hkmjkl7WbFqouoEN .statediagram-cluster rect.outer{rx:5px;ry:5px}#mermaid-svg-hkmjkl7WbFqouoEN .statediagram-state .divider{stroke:#9370db}#mermaid-svg-hkmjkl7WbFqouoEN .statediagram-state .title-state{rx:5px;ry:5px}#mermaid-svg-hkmjkl7WbFqouoEN .statediagram-cluster.statediagram-cluster .inner{fill:white}#mermaid-svg-hkmjkl7WbFqouoEN .statediagram-cluster.statediagram-cluster-alt .inner{fill:#e0e0e0}#mermaid-svg-hkmjkl7WbFqouoEN .statediagram-cluster .inner{rx:0;ry:0}#mermaid-svg-hkmjkl7WbFqouoEN .statediagram-state rect.basic{rx:5px;ry:5px}#mermaid-svg-hkmjkl7WbFqouoEN .statediagram-state rect.divider{stroke-dasharray:10,10;fill:#efefef}#mermaid-svg-hkmjkl7WbFqouoEN .note-edge{stroke-dasharray:5}#mermaid-svg-hkmjkl7WbFqouoEN .statediagram-note rect{fill:#fff5ad;stroke:#aa3;stroke-width:1px;rx:0;ry:0}:root{--mermaid-font-family: '"trebuchet ms", verdana, arial';--mermaid-font-family: "Comic Sans MS", "Comic Sans", cursive}#mermaid-svg-hkmjkl7WbFqouoEN .error-icon{fill:#522}#mermaid-svg-hkmjkl7WbFqouoEN .error-text{fill:#522;stroke:#522}#mermaid-svg-hkmjkl7WbFqouoEN .edge-thickness-normal{stroke-width:2px}#mermaid-svg-hkmjkl7WbFqouoEN .edge-thickness-thick{stroke-width:3.5px}#mermaid-svg-hkmjkl7WbFqouoEN .edge-pattern-solid{stroke-dasharray:0}#mermaid-svg-hkmjkl7WbFqouoEN .edge-pattern-dashed{stroke-dasharray:3}#mermaid-svg-hkmjkl7WbFqouoEN .edge-pattern-dotted{stroke-dasharray:2}#mermaid-svg-hkmjkl7WbFqouoEN .marker{fill:#333}#mermaid-svg-hkmjkl7WbFqouoEN .marker.cross{stroke:#333}:root { --mermaid-font-family: "trebuchet ms", verdana, arial;} #mermaid-svg-hkmjkl7WbFqouoEN {color: rgba(0, 0, 0, 0.75);font: ;}

byte
short
int
long
float
double
char

其中强制类型转换表示从大类型到小类型的转换:

 目标类型 变量名 = (目标类型)源类型变量名

#Java语言的运算符

运算符

算术运算符

+ - * / %

字符串连接运算符

+ 可以实现字符串的连接,同时也可以字符串与其他数据类型“连接”

关系/比较运算符

> >= < <= == !=

所有以关系运算符为最终运算的表达式结果一定是boolean类型

自增减运算符

++ 表示自增运算符,用于使得当前变量自身的数值加1的效果
– 表示自减运算符,用于使得当前变量自身的数值减1的效果
只能用于变量 常熟不可以
前++是先使用再加,后++是先加在使用

public static void main(String[] args){int a = 10;System.out.println("a++是: " + a++); //10System.out.println("a是: " + a); //11System.out.println("a++是: " + ++a); //12System.out.println("a++是: " + a); //12
}

逻辑运算符

&& 表示逻辑与运算符,相当于"并且",同真为真,一假为假
|| 表示逻辑或运算符,相当于"或者",一真为真,同假为假
! 表示逻辑非运算符,相当于"取反",真为假,假为真
逻辑运算符的操作数均为boolean表达式

逻辑运算符短路特性
对于逻辑与运算符来说,若第一个表达式为假则结果为假,此时跳过第二个表达式;
对于逻辑或运算符来说,若第一个表达式为真则结果为真,此时跳过第二个表达式;

三目运算符

条件表达式?表达式1: 表达式2

判断条件表达式是否成立,若成立则执行表达式1,否则执行表达式2

赋值运算符

= 表示赋值运算符,用于将=右边的数据赋值给=左边的变量,覆盖变量
原来的数值
赋值表达式本身也有值,其本身之值即为所赋之值
+= -= /= *=

移位运算符

<< 赋值表达式本身也有值,其本身之值即为所赋之值>> 右移运算符,用于将数据的二进制位向右移动,左边使用符号位补充>>> 表示逻辑右移运算符,用于将数据的二进制位向右移动,左边使用0补充。

位运算符

& 表示按位与运算符,按照二进制位进行与运算,同1为1,一0为0
| 表示按位或运算符,按照二进制位进行或运算,一1为1,同0为0.
~ 表示按位取反运算符,按照二进制位进行取反,1为0,0为1
^ 表示按位异或运算符,按照二进制位进行异或运算,同为0,不同为1

运算符优先级

()的优先级极高。
=的优先级最低
若无法确认优先级,则使用()来确保即可

流程控制语句

分支结构

当需要进行条件判断并做出选择时,使用分支结构
if分支结构

if(条件表达式){语句块;
}

if else 分支结构

if(条件表达式){语句块1;
} else {语句块2;
}

if else if else分支结构

if(条件表达式1) {语句块1;
} else if(条件表达式2) {语句块2;
} else {
语句块3;
}

switch case分支结构

switch(变量/表达式){case 字面值1:语句块1; break;case 字面值2:语句块2; break;...default:语句块n;
}

switch()中支持的数据类型有:byte、short、char以及int类型,从jdk1.5
开始支持枚举类型,从jdk1.7开始支持String类型

case穿透性
如果case 后面没有break,程序会向下一直穿透

循环结构

在Java程序中若希望重复执行一段代码时,就需要使用循环结构
任何复杂的程序逻辑都可以通过顺序、分支、循环三种程序结构实现

for循环

for(初始化表达式; 条件表达式; 修改初始值表达式){循环体;
}

for(;;) - 这种没有循环条件的循环叫做 无限循环,俗称“死循环”
continue关键字
continue语句用在循环体中,用于结束本次循环而开始下一次循环
break关键子
break用于退出当前语句块,break用在循环体中用于退出循环

** 双重for循环**

for(初始化表达式1; 条件表达式2; 修改初始值表达式3) {for(初始化表达式4; 条件表达式5; 修改初始值表达式6) {循环体;}
}

外层循环用于控制打印的行数,内层循环用于控制打印的列数,外层循环改一下,内层循环从头到尾跑一圈
在以后的开发中若需要打印多行多列时,需要使用双重循环
多重循环不宜嵌套太多层,否则效率很低。一般到三重循环即可,最常见的就是双重循环

break关键字跳出多层循环
在嵌套的循环结构中,break用于退出所在循环体
如果要退出外层循环体,需要使用标号的方式

outer: for(...){for(...){循环体;break outer;}
}

while循环

while(条件表达式){循环体;
}

while循环和for循环比较

while循环和for循环完全可以互换,当然推荐使用for循环
while循环更适合于明确循环条件但不明确循环次数的场合中
for循环更适合于明确循环次数或范围的场合中
while(true) 等价于 for(;;) 都表示无限循环

do while循环

do{
循环体;
} while (条件表达式);

do-while循环主要用于至少执行一次循环体的场合中

数组的概念及应用

一维数组

一维数组的基本概念

  • 当需要在Java程序中记录单个数据内容时,则声明一个变量即可
  • 当需要在Java程序中记录多个相同数据类型的数据内容时,则声明一个一维数组即可,一维数组本质上就是在内存中申请一段连续的存储单元
  • 数组是相同数据类型的多个元素的容器,元素按照现行顺序排序,在Java语言中体现为一种引用类型

一维数组的声明方式

数组类型[] 数组名称 = new 数组类型[数组的长度];

获取数组的长度:

数组名称.length

可以通过下标的方式访问数组中的每一个元素。需要注意的是:数组的下标从0开始,对于长度为n的数组,下标的范围是0~n-1。

一维数组的初始化方式

基本类型的数组创建后,其元素的初始值:
byte short int long char 为0
floeat double 为0.0
boolean 为 false
可以在数组声明的同时进行初始化

数组类型[] 数组名称 = {初始值1, 初始值2,...};

内存之栈区和堆区

栈区用于存放程序运行过程当中所有的局部变量,一个运行的Java从开始到结束会有多次变量的声明
堆区JVM会在其内存空间中开辟一个称为‘堆’的内存空间,这部分空间用于存储使用new关键字创建的数组和对象

数组的优缺点

  • 可以直接通过下标的方式访问指定位置的元素,速度快
  • 数组要求所有元素类型相同
  • 数组要求内存空间连续,且长度一旦生成就不能修改
  • 增加和删除元素可能移动大量元素,效率低

数组工具

java.util.Arrays类可以实现对数组中元素的遍历、查找、排序等操作举例:

方法名称 作 用
static String toString(int[] a) 输出数组中的内容
static void fill(int[] a,int val) 将参数指定元素赋值给数组中所有元素
static boolean equals(int[] a, int[] b) 判断两个数组的元素内容和次序是否相同
static void sort(int[] a) 对数组中的元素从小到大排序
static int binarySearch(int[] a, int key 从数组中查找指定元素所在的位置

binarySearch 是用二分法查找,对有序数组进行查找

二维数组

二维数组本质上就是由多个一维数组摞在一起组成的数组,二维数组中的每个元素都是一维数组,而一维数组中的每个元素才是数据内容
初始化方式

数组类型[][] 数组名称 = new 数组类型[行数][列数]
数组类型[][] 数组名称 = {{元素1, 元素2, ...}, ...};

Java SE 基础一相关推荐

  1. java实现linkstring,【JAVA SE基础篇】32.String类入门

    [JAVA SE基础篇]32.String类入门 1.字符串 1.String类又称作不可变字符序列 2.String位于java.lang包中,java程序默认导入java.lang包下所有的类 3 ...

  2. 面试必会系列 - 1.1 Java SE 基础

    本文已收录至 github,完整图文:https://github.com/HanquanHq/MD-Notes Java SE 基础 面向对象 Java 按值调用还是引用调用? 按值调用指方法接收调 ...

  3. java 中间容器 表格_【JAVA SE基础篇】45.迭代器、Collections工具类以及使用容器存储表格...

    本文将要为您介绍的是[JAVA SE基础篇]45.迭代器.Collections工具类以及使用容器存储表格,具体完成步骤: 1.迭代器 迭代器为我们提供了统一遍历容器(List/Map/Set)的方式 ...

  4. Java复习总结(二)Java SE基础知识

    Java SE面试题 目录 Java SE基础 基本语法 数据类型 关键字 面向对象 集合 集合类概述 Collection接口 进阶 线程 锁 JDK 反射 JVM GC io操作和NIO,AIO ...

  5. Java SE基础(十六)集合

    Java SE基础(十六)集合 集合 集合体系 数据结构简述 栈 队列 数组 链表 Collection集合 List集合 ArrayList集合 LinkedList集合 Set集合 HashSet ...

  6. Java SE 基础知识

    Java SE 基础知识 1 2 @(Notes)[J2SE, Notes] VICTORY LOVES PREPARATION. 特别说明: 该文档在马克飞象查阅最佳: 本部分知识还在迭代中,欢迎补 ...

  7. Java SE基础(更新中)

    Java的运行机制 Java SE基础(更新中) 基本语法 大小写敏感:Java 是大小写敏感的,这就意味着标识符 Hello 与 hello 是不同的. 类名:对于所有的类来说,类名的首字母应该大写 ...

  8. Java SE 基础(十)Java中的异常

    Java SE 基础(十)Java中的异常 什么是异常 异常的处理 异常类 throw和throws 自定义异常 什么是异常 Java 中处理错误的一种机制,Java 中的错误大致分为两类,一类是编译 ...

  9. Java SE基础(十四)常用API

    Java SE基础(十四)常用API 概述 Object类 构造方法 成员方法 toString()方法 equals(Object obj)方法 Arrays排序 Arrays类概述 Arrays成 ...

  10. Java SE 基础知识体系梳理

    ## Java SE 基础知识体系梳理 ----------day01------------- (1)计算机的体系结构 (2)Java语言的概述 (3)开发环境的搭建和使用 1.计算机的体系结构(常 ...

最新文章

  1. 《人件集》阅读笔记第一篇
  2. Spring Cloud(十)高可用的分布式配置中心 Spring Cloud Config 中使用 Refresh
  3. BERT拿下最佳长论文奖!NAACL 2019最佳论文奖公布
  4. 字典删除多个键值对方法_Life is short,you need Python——Python序列(元组、字典、集合)...
  5. 对KVM虚拟机进行cpu pinning配置的方法
  6. linux清理备份日志,服务器日志清理备份
  7. mysql无法添加或更新子行_违反完整性约束:1452无法添加或更新子行:
  8. 昆仑通态触摸屏数据转发上传_嵌_ModbusTcpIp数据转发 昆仑通态屏与屏之间通讯 - 下载 - 搜珍网...
  9. 结束十年科学争论,张辰宇团队阐明食物miRNA被胃吸收的分子机制,miRNA跨界调控再添力证...
  10. PHP 删除文件,文件下的目录
  11. Foobar2000目前最强解码方案
  12. 厉害了,用Python实现自动扫雷
  13. React 引用 ant 组件 使用 react-custom-scrollbars美化(隐藏)滚动条
  14. 第 29 章 电阻触摸屏—触摸画板
  15. PLC控制系统接地要求
  16. 笔记本电脑亮度不能调节的一种解决方案
  17. AI挖掘优质淘宝买家秀 再也不用担心辣眼睛了
  18. NAT环境下,内网用户使用公网地址访问内网服务器
  19. 程序员工作压力大,为什么还这么多人想做程序员?是因为喜欢吗?
  20. 电信宽带连接不上无线可连接服务器,电信宽带wifi连不上网的解决方法

热门文章

  1. Matlab安装勾选产品说明
  2. 关于红黑二叉树的理解
  3. Java多线程(一)
  4. 图片怎么转换成gif?
  5. 如何利用多层循环找出对称的3位数数字?
  6. 后端: 互动直播之WebRTC服务开源技术选型
  7. 北师大网络教育计算机作业四,北师大计算机离线作业之网络设置作业
  8. webpack externals配置方式介绍
  9. OPPO图片缩放效果
  10. 加特兰 77GHz CMOS 毫米波雷达芯片从研发到量产的背后故事...