JAVA1

IntelliJ IDEA简介

简称IDEA,字面意思是“智能理念”,是JetBrains公司的产品。它是业界公认最好的、也是最智能的Java集成开发环境(IDE)

第一个Java程序:HelloWorld

程序代码解释
Java程序的最小单位是类,一个Java程序至少拥有一个类
Java程序的入口是main方法

注意事项:

  • main方法的格式是固定的,不能更改

Java程序开发与运行原理

编写 ——> 编译 ——> 运行:

  • 编写源文件(.java)
  • 通过javac命令编译成字节码文件(.class)
  • 通过java命令运行字节码文件,在控制台打印结果
    在这里插入图片描述

IDEA基本配置

(在u盘里有教程pdf)

IDEA常用快捷键

快捷键

Java语言编码规范

  • 大括号成对、对齐写
  • 左大括号前有空格
  • 代码缩进
  • 方法和程序块之间空行
  • 并排语句加空格
  • 运算符两侧加空格

Java核心_常量、变量

注释

为了让不同的程序员快速理解对方的编码内容
注释的分类:

  • 单行注释 格式: // 注释文字
  • 多行注释格式: /* 注释文字 */
  • 文档注释格式: /** 注释文字 */

关键字

被Java语言赋予特定含义的单词
组成关键字的字母全部小写 常见的代码编辑器,对关键字有特殊的颜色标记
在这里插入图片描述
在这里插入图片描述

常量

在程序执行的过程中,其值不可以发生改变的量
常量的分类:
字面值常量(掌握)

  • 字符串常量 “HelloWorld” (双引号)
  • 字符常量 ‘a’, ‘0’ (单引号)
  • 整数常量 12, -23
  • 小数常量 12.34
  • 布尔常量 true, false F:空常量(了解) null

自定义常量(了解)
用final关键字修饰的量(面向对象部分讲解)

变量

在程序执行的过程中,其值可以在某个范围内发生改变的量。 变量的本质,是内存中的一小块区域
变量的定义格式数据类型 变量名 = 初始化值;
各部分的含义是什么?

  • 数据类型:变量变化的范围就是数据类型
  • 变量名:每个变量都有一个名字,方便存取。
  • 初始化值:使用变量前,需要给变量赋值

数据类型及类型转换

数据类型

变量变化的范围就是数据类型
1.数据类型的分类:

  • 基本数据类型(四类八种)byte、short. int、 long. char , float、double , boolean
  • 引用数据类型(对象类型)类、接口、数组
    **2.変量的作用域:**只在它(定乂的位置)所属的代码块内有效
    代码块: 一对大括号范围内的代码,称カ一个代码块
    3.変量定义和使用中的注意事项:
    A:変量未赋值,不能使用
    B:変量只在它所属的范围内有效
    C:一行上可以定乂多个変量,但是不建议
    在这里插入图片描述
long l = 100L;
float f = 10.3F;

为什么需要八种基本数据类型?

  • 设计多种数据类型的原因是为了更充分的利用内存空间,提高内存使用的效率。
    计算机存储数据的形式
    计算机中最小的存储单元是字节(Byte,通常用B表示),每个字节包含8个位(bit,又叫“比特位”通常用b表示,值
    为0或1)。
    1B(字节) = 8bit
    1KB = 1024B
    1MB = 1024KB
    1GB = 1024MB
    1TB = 1024GB
数据类型转换

不同类型的数据之间可能会进行运算,而这些数据取值范围不同,存储方式不同,直接进行运算可能会造成数据损
失,所以需要将一种类型转换成另外一种类型再进行运算。
数据类型转换的分类
在这里插入图片描述

byte cc= (byte) (a+b);

当且仅当大类型数据可以转换为小类型数据时,才进行转换,否则会造成精度损失。
自动类型转换顺序如下:
在这里插入图片描述

标识符

给类、方法、变量、常量等起名字的字符序列,就是标识符。
通俗地说,标识符就是在编程中程序员给类、方法、变量、常量等起的名字。
在这里插入图片描述
标识符的组成部分
英文大小写字母、数字、下划线( _ ) 和美元符号( $ )

标识符的定义规则

  • 不能以数字开头
  • 不能是关键字
  • 严格区分大小写

标识符的命名规范

  • 类和接口:首字母大写,如果有多个单词,每个单词首字母大写:HelloWorld,Student
  • 变量和方法:首字母小写,如果有多个单词,从第二个单词开始首字母大写:getName, studyJava
  • 常量名(自定义常量):所有字母都大写,多个单词用下划线隔开(_):MAX_VALUE
  • 包名:全部小写,如果有多级,用点号(.)隔开,遵循域名反写的格式:cn.itcast.demo
  • 总结:驼峰命名,见名知意

Java核心_运算符

运算符概述

运算符:对常量和变量进行运算操作的符号
表达式:用运算符把常量或者变量连接起来的式子称为表达式。
表达式类型:表达式的类型为表达式运算结果的数据类型。
举例:整型表达式: 1+2 10*20
在这里插入图片描述

算术运算符

ASCII码:0:48; a:97; A:65

int a = 10;
char ch = 'a';  //97
System.out.println(a + ch); //107
System.out.println("hello" + "world");      //"helloworld"
System.out.println("hello" + 10);           //"hello10"
System.out.println("hello" + 10 + 20);      //"hello10" + 20  --> "hello1020"
System.out.println(10 + 20 + "hello");      //30 + "hello"    --> "30hello"

自增和自减(++和–)运算

赋值运算符

int a=10; a+=2;  
short s=1; s+=1;

扩展赋值运算符的好处:省略了强制类型转换的操作

关系运算符

,< ,==,!=,>-,<=

逻辑运算符

&&
||
!

三元运算符

(关系表达式) ? 表达式1 : 表达式2

int max = (a > b) ? a : b;

Java核心_流程控制之选择结构

Scanner的基本使用

扫描器。即可以通过Scanner类扫描用户在控制台录入的数据
步骤:1. 导包 2. 创建键盘录入对象 3. 接收数据

   import java.util.Scanner;  //1
   Scanner sc=new Scanner(System.in); //2
   int i=sc.nextInt(); //3

流程控制结构概述

程序的结果跟代码的执行顺序紧密相关,通过使用一些特定的语句控制代码的执行顺序从而完成特定的功能,这就是流程控制结构。
分类:

  • 顺序
  • 选择
  • 循环

顺序结构:即程序按照代码的顺序从上往下、从左往右依次执行的代码结构。
选择结构:根据不同的条件选择不同的代码来执行的代码结构。
循环结构:使一部分代码按照次数或一定的条件反复执行的一种代码结构。

流程控制结构之选择结构

选择结构要先判断条件是否成立,条件成立则执行一部分代码,不成立则执行另外一部分或结束代码,所以选择结构也叫判断结构。
分类:if语句 switch语句

选择结构if语句

略了。。。
三种导包方式:手动导包 ; 点击鼠标自动生成 ; 快捷键:Ctrl + Shift + O

选择结构switch语句

switch的表达式的取值类型可以是:byte,short,int,char,
jdk5以后可以是枚举,jdk7可以是String
(枚举指的是一系列数目可数的数据。比如每周的星期,每年的月份。)

switch(表达式) {
  case1:语句体1;break;
  case2:语句体2;break;
  // ...
  default:语句体n+1;
  break;
}

Java核心_流程控制之循环结构

循环结构的概念和分类

循环,即事物周而复始的变化。 循环结构,使一部分代码按照次数或一定的条件反复执行的一种代码结构。
循环结构的分类

  • for循环
  • while循环
  • do…while循环

for循环

for(初始化语句; 判断条件语句; 控制条件语句) {
  // 循环体
}

while循环

初始化语句;
while(判断条件语句) {
循环体语句;
控制条件语句;
}

初始化语句可以省略 控制条件语句可以省略

do…while循环

初始化语句;
do {
循环体语句;
控制条件语句;
} while(判断条件语句);

while小括号后的分号不可省略.do…while循环的循环体语句至少执行1遍
在这里插入图片描述

三种循环的区别

       /*
            1. 格式不同.
            2. 初始化语句不同
            3. 循环体的执行次数不同.
            4. 使用场景不同.
         */
        //案例: 分别通过三种循环打印1~5之间的数字
        //for循环
        for(int a = 10; a <= 5; a++) {
            System.out.println("a: " + a);
        }
        //System.out.println(a);  这样写不行, 因为for循环执行结束后, 初始化条件就不能使用了.
        System.out.println("-------------------------");

        //while循环
        int b = 10;
        while(b <= 5) {
            System.out.println("b: " + b);
            b++;
        }
        //System.out.println("b::::: " + b);
        System.out.println("-------------------------");

        //do..while循环: 不管判断条件是否成立, 循环体都会先执行一次.
       int c = 10;
       do{
           System.out.println("c: " + c);
           c++;
       }while(c <= 5);
        //System.out.println("c::::: " + c);
    }
}

死循环

       for (; ; ) {
            //循环体,根据实际需求结束循环
        }
        while (true) {
            //循环体,根据实际需求结束循环
        }

break和continue

break :中断,用于switch语句和循环语句: 在switch语句中,表示结束switch代码块 在循环语句中,表示结束循环
continue:继续,用于循环语句,表示结束本次循环,继续下次循环
循环嵌套:在一个循环体语句中包含另一个循环语句时,称为循环嵌套

Random类的简单使用

  1. 导包 2. 创建键盘录入对象 3. 获取随机数
import java.util.Random;
Random r=new Random();
int num=r.nextInt(10);//10是范围

Java核心_方法和数组

方法概述

方法:也叫函数,是完成特定功能的代码块。 简单来说,一个方法就是一个功能、一个动作或一种行为。
当一些代码被反复使用时,可以把它们提取出来,放到一个方法里,以方法的形式来使用这些代码。
大大提高了代码的复用性,方便维护。

方法的格式

在这里插入图片描述
修饰符:public static
返回值类型:方法执行结果的数据类型
方法名:方法的名称,符合标识符命名规则即可
参数列表:方法执行需要的条件。
参数类型:可以是基本类型,也可以是引用类型
参数名:即变量名
方法体语句:完成特定功能的代码
return:意思是返回,用于结束方法。
返回值:方法执行之后的结果,返回给方法的使用者。若方法没有返回值,则它的返回值类型为void,比如main方法

方法的定义和调用

定义一个方法:

  1. 确定方法名
  2. 确定返回值类型
  3. 确定参数列表
public static int sum(int a,int b){
   int c = a + b;
   return c;
}

使用方法的过程称为方法的调用

int x=sum(4,3);  //main方法中

在这里插入图片描述方法调用时,若不关心方法的返回结果,可以直接调用,省略接收返回值的动作

方法重载

当实现的功能相同,但具体的实现方式不同时,我们可以通过定义名称相同,参数(条件)不同的方法,来更好的识别和管理类中的方法。
在同一个类中的多个方法,它们的方法名相同,参数列表不同,这样的情况,称为方法重载。方法重载与修饰符和返回值类型无关。
参数的个数不同 / 对应位置的参数类型不同。
方法签名:方法名 + 参数列表

public static int sum(int a, int b) {
    return a + b;
}
public static long sum(long a, long b) {
    return a + b;
}
public static double sum(double a, float b, int c) {
    return a + b + c;
}

哪些方法是重载关系:136,248,57
在这里插入图片描述

数组概述

为了存储多个数据值。
数组是用来存储同一种数据类型多个元素容器
数据类型:可以是基本类型,也可以是引用类型
容器:比如教室、衣柜、纸箱等,可以存放多个事物

数组的定义和访问

数组的定义格式一:
数据类型[ ] 数组名 = new 数据类型[长度];
数组的定义格式二:
数据类型[ ] 数组名 = new 数据类型[]{元素1, 元素2, 元素3…};
定义时元素是确定的,避免内存空间的浪费
数组的定义格式三:
数据类型[ ] 数组名 = {元素1, 元素2, 元素3…};
格式三是格式二的变形,简化了代码编写

int[] arr1 = new int[3]; //格式一
int[] arr2 = new int[]{1, 2, 3};  //格式二
int[] arr3 = {1, 2, 3};  //格式三

数组的访问
通过数组的索引访问数组的元素
索引:也叫下标、脚标,是数组元素距离数组起始位置的偏移量
第一个元素的偏移量为0,所以数组的索引从0开始
格式:数组名[索引]
取值:数组名[索引]
赋值:数组名[索引] = 值;

 arr1[1]=3;

1:数组的最大索引为数组长度-1
2:数组中未手动赋值的元素,有默认值0
3:直接输出数组变量名,得到的是数组的内存地址值

数组的初始化
内存中为数组开辟连续空间并为每个元素赋值的过程
内存:计算机的重要组件,用于程序运行中临时存储数据。
连续空间:数组元素在内存空间中的存放位置是连续的
动态初始化(格式):只指定长度,由系统给出默认值 整数型: 0 浮点型: 0.0 字符型: ‘\u0000’ (空字符) 布尔型: false 引用类型:null
静态初始化(格式二、三):给出初始化值,由系统决定数组长度

Java程序的内存分配
  • 方法区:存储可运行的class文件,包含方法,静态成员,常量等(面向对象部分详解)
  • 栈:方法运行时使用的内存,特点是“后进先出”,即最先进入栈区的方法最后出栈,比如main方法
  • 堆:存储new出来的数组或对象(面向对象部分详解)
  • 本地方法栈:JVM在调用操作系统功能时使用,与开发无关
  • 寄存器:CPU使用,与开发无关
    在这里插入图片描述
    数组类型:变量arr存储的是数组在堆内存中的地址值,而不是数组元素的值,变量arr通过内存地址引用堆内存中的数组,所以数组是引用类型

数组的常见操作

数组使用中两个常见问题
数组索引越界异常: ArrayIndexOutOfBoundsException
当访问了不存在的索引时 异常:即非正常情况,可以简单理解为程序运行过程中出现错误。
在这里插入图片描述
空指针异常:NullPointerException
数组引用存储的值为null而非数组的地址值时
在这里插入图片描述
引用类型的变量作为参数传递给方法时,传递的是地址值
基本类型的变量作为参数传递给方法,传递的是

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值