JAVA学习笔记

一、基础语法

(一)基本操作

1、打开windows+R cmd命令提示符窗口

C:\Users\with5>D: 盘符切换到D盘目录下D:\>

D:\>dir 查看当前路径下的内容

D:\>cd develop 进入单级目录

cd 目录1\目录2\... 进入多级目录

cd.. 回退到上一级目录

cd\ 回退到盘符目录

cls 清屏

exit 退出命令提示符窗口

输入文件名第一个字母按tab键可自动补齐文件名

2、JDK的安装目录

下载地址:Java Downloads | Oracle

选择对应系统,下载.exe文件,打开程序安装

安装jdk时文件名不能有空格,尽量存放在单独的工作盘避免混乱

bin 存放了JDK的各种工具命令。java和javac都在这个目录

conf 存放了JDK的相关配置文件

include 存放了一些平台特定的头文件

jmods 存放了JDK的各种模块

legal 存放了JDK的各模块的授权文档

lib 存放了JDK工具的一些补充JAR包

3、环境变量配置

此电脑右键打开属性——>高级系统设置——>环境变量——>新建系统变量——>变量名:JAVA_HOME 变量值:JDK的安装目录D:\develop\Java\jdk-18——>确定新建系统变量——>系统变量Path编辑——>新建%JAVA_HOME%bin——>确定编辑环境变量——>确定系统属性设置

(未配置环境变量的情况下,不能直接cmd命令输入javac打开编译器,需输入完整的javac地址)

4、Java程序开发运行流程

编写程序(记事本)——>编译程序(Javac编译器)——>Java字节码文件——>运行程序(Java命令)

HelloWorld案例:

①新建文本文档文件,修改名称为HelloWorld.java

②记事本打开文件编写程序内容并保存(Ctrl+S)

/*

Java程序中最基本的组成单位是类,

类的定义格式:

        public class 类名 {

        }

*/

public class HelloWorld{                          // 定义一个HelloWorld类
    public static void main(String[] args) { // main方法是程序的入口,从main开始执行代码
        System.out.println("HelloWorld");    // 输出语句“”里内容可修改

// 注意是英文状态下的符号,System程序包需大写
    }        
}            

 ③打开命令提示符窗口进入HelloWorld.java所在目录,输入指令编译和执行

编译:javac 文件名.java

javac HelloWorld.java

执行:java 类名

java HelloWorld

C:\Users\with5>d:                        // 切换到D盘目录下

D:\>javac HelloWorld.java           // 通过javac编译程序,得到class文件

D:\>java HelloWorld                    // 通过java执行文件得到运行结果

HelloWorld

5、Notepad软件(记事本)

显示行号便于调试错误,建议安装到develop目录下与java同目录

GitHub搜索notepad++下载(官网打不开或收费)

更改安装目录——>下一步直至完成——>打开notepad++——>设置首选项——>新建——>默认语言Java——>编码ANSI——>关闭设置(便于使用方便修改默认语言和编码)

(二)基础知识

1、注释

单行注释://注释信息

多行注释:/*注释信息*/

文档注释:/**注释信息*/

2、关键字

关键字的字母全部小写,在常用的代码编辑器中,关键字有特殊颜色标记,如public、class、static、void,Java中有50个左右的关键字

3、常量

程序运行过程中,值不可以发生改变

字符串常量"  " 

整数常量

小数常量

字符常量'  '

布尔常量true,false

空常量null(不能直接输出)

4、数据类型

计算机存储设备的最小信息单元:位(bit),比特位,b

最小的存储单元:字节(byte),B,由8个连续的位组成

1B=8bit

1KB=1024B

1MB=1024KB

1GB=1024MB

1TB=1024GB

不同数据类型分配不同的内存空间,表示的数据大小也不一样

整数 byte        1                -128~127

        short       2                -32768~32767

        int           4                -2^31~2^31-1

        long        8                -2^63~2^63-1

浮点数float     4        

           double 8

字符char         2                0~65535

布尔boolean   1                true,false

5、变量

程序运行过程中,值可以发生改变

定义格式:数据类型 变量名 = 变量值;

基本数据类型:byte,short,int,long,float,double,char,boolean

取值格式:变量名

修改值格式:变量名=变量值;

public class VariableDemo01{
    public static void main(String[] args) {
        int a = 10;                    // 定义变量
        System.out.println(a);  // 输出变量10

        a = 4781;                     // 修改变量
        System.out.println(a);  // 输出变量4781
    }
}

使用cmd命令提示符窗口运行java文件

C:\Users\with5>d:

D:\>javac VariableDemo01.java

D:\>java VariableDemo01
10
4781

①定义变量名不能重复,且必须需要赋初始值才可使用,赋值需在范围内

②定义long类型时为防止整数过大,需在数值后加L,如:long a = 10000000000L

③定义float类型时为防止不兼容类型,需在数值后加F,如:float f = 3.14F

6、标识符

给类、方法、变量等起名字的符号

定义规则:

①由数字、字母、下划线_、美元符$组成

②不能以数字开头

③不能是关键字

④区分大小写

常见命名约定:

①小驼峰命名法(方法、变量):第一个单词首字母小写,其他单词首字母大写

②大驼峰命名法(类):全部单词首字母大写

7、类型转换

①自动类型转换:表示范围小的数值或变量赋值给另一个表示范围大的变量

数据范围从小到大:

byte——>short——>int——>long——>float——>double

                 char——>

②强制类型转换:表示范围大的数值或变量赋值给另一个表示范围小的变量(可能存在数据丢失)

格式:目标数据类型 变量名 = (目标数据类型)值或变量;

如:int k = (int)88.88;         输出结果为88

(三)运算符

运算符是对常量或变量进行操作的符号

表达式是用运算符把常量或变量连接起来符合java语法的式子

不同运算符连接的表达式体现不同类型的表达式

1、算数运算符

+  加        -  减        *  乘        /  除(得到商)        %  取余(得到余数)

整数相除只能得到整数,要得到小数必须要有浮点数的参与

字符'A'的值为65,'a'的值为97,'0'的值是48,可以和int类型做+操作

算术表达式中包含多个基本数据类型时,整个算术表达式的类型会自动进行提升

提升规则:

①byte、short、char类型提升到int

②自动提升到表达式中最高等级操作数同样的类型

等级顺序:byte,short,char——>int——>long——>float——>double

字符串的+操作:出现字符串则拼接,从左到右执行,没有字符串就是算术运算

2、赋值运算符

=  赋值(把右赋值给左)

+= 把左边和右边的数据做加法,结果赋值给左边(i += 20,即i = i + 20)

扩展的赋值运算符(+=  -=  *=  /=  %=)底层隐含了强制类型转换

3、自增自减运算符

++  自增   变量的值加1        --自减  变量的值减1

i++与++i单独使用时的结果相同(常见),参与操作时i++先使用i的值参与操作再+1,++i先+1再参与操作

4、关系运算符

==        !=        >        >=        <        <=  判断结果为true或false

5、逻辑运算符

用于连接关系表达式,如:3<x<6在Java中需写成x>3 && x<6

1)基本逻辑运算符

&  逻辑与(有false则false)        |  逻辑或(有true则true)       

^  逻辑异或(相同为false不同为true)        !  逻辑非(奇数个!结果相反,偶数个相同)

2)短路逻辑运算符:

&&  短路与(有false则false,如果左边为false则右边不执行,结果与逻辑与相同)       

||  短路或(有true则true,如果左边为true则右边不执行,结果与逻辑或相同)

6、三元运算符

格式:关系表达式?表达式1:表达式2;

如:a > b ? a : b;

首先计算关系表达式的值,如果为true,则表达式1的值为运算结果,如果为false,则结果为表达式2的值

public class OperatorDemo {
    public static void main(String[] args) {
        int a = 10;                                              // 定义两个变量
        int b = 20;
        int max = a > b ? a : b;                          // 获取两个数据中的较大值
        System.out.println("max:" + max);         // 输出结果
    }
}

cmd命令运行该java程序

C:\Users\with5>d:

D:\>javac OperatorDemo.java

D:\>java OperatorDemo
max:20

(四)数据输入

 1、Scanner使用

需要运行时键盘录入数据的时候用

①导包:import java.util.Scanner;        // 导包必须在类定义上面

②创建对象:Scanner sc = new Scanner(System.in);     // sc是变量名可变,其他均不可变

③接收数据:int i = sc.nextInt();         // i是变量名可变,其他均不可变

2、分支语句

1)流程控制

语句分类:顺序结构、分支结构(if、swhich)、循环结构(for、while、do……while)

出现错误: 编码 UTF-8 的不可映射字符 (0xB5)

解决方案:D:\>javac -encoding gbk IfDemo.java

① if判断语句格式

格式一:(一种情况的判断)

if (关系表达式) {

     语句体;

 }

首先计算关系表达式的值,为true执行语句体,为false则不执行,继续执行后面的语句

public class IfDemo {
    public static void main(String[] args) {
        int a = 10;
        int b = 20;
        if (a == b) {
            System.out.println("a等于b");
        }
        int c = 10;
        if (a == c) {
            System.out.println("a等于c");
        }
        System.out.println("结束");
    }
}

a等于c

结束

格式二:(两种情况的判断)

if (关系表达式) {

     语句体1;

} else {

     语句体2;

}

首先计算关系表达式的值,为true执行语句体1,为false则执行语句体2,再继续执行后面的语句

public class IfDemo02 {
    public static void main(String[] args) {
        int a = 10;
        int b = 20;
        if (a > b) {
            System.out.println("a>b");
        } else {
            System.out.println("a<=b");
        }
        System.out.println("结束");
    }
}

a<=b

结束

格式三:(多种情况的判断)

if (关系表达式1) {

     语句体1;

} else if (关系表达式2) {

     语句体2;

}

...

else {

     语句体n+1;

}

首先计算关系表达式1的值,为true执行语句体1,为false则关系表达式2,为true执行语句体2,为false则关系表达式3,……如果没有任何关系表达式值为true,则执行语句体n+1

注:测试数据时:正确数据、边界数据、错误数据

② switch判断语句格式

switch(表达式) {

        case 值1:

                语句体1;

                break;

        case 值2:

                语句体2;

                break;

        ...

        default:

                语句体n+1;

                [break;]           // 可选

首先计算表达式的值,依次和case后的值进行比较,有对应的值就会执行相应的语句,遇到break就会结束,如果都不匹配就执行default语句体,最后结束程序

case穿透:若语句体执行完成后无break,则会执行下一个语句体,直到遇到break

③ for循环语句格式

循环结构组成:初始化语句、条件判断语句、循环体语句、条件控制语句

for (初始化语句;条件判断语句;条件控制语句) {

        循环体语句;

}

首先执行初始化语句,执行条件判断语句,结果为false循环结束,为true继续执行循环体语句,执行条件控制语句,返回判断语句继续重复执行。

public class ForDemo {
        public static void main(String[] args) {
            for(int i=1;i<6;i++) {
                System.out.println("Sqhy szd");
            }
        }
}

注意i的类型需定义

D:\>javac ForDemo.java

D:\>java ForDemo
Sqhy szd
Sqhy szd
Sqhy szd
Sqhy szd
Sqhy szd

例1:输出1-100的累加和  1-100内偶数的累加和

public class Test06 {
    public static void main(String[] args) {
        int sum1 = 0;
        for(int i=1;i<=100;i++) {
            sum1 += i;
        }
        System.out.println("1-100累加和为:" + sum1);
        
        int sum2 = 0;
        for(int i=1;i<=100;i++) {
            if (i % 2 == 0) {
                sum2 += i;
            }
        }
        System.out.println("1-100偶数累加和为:" + sum2);
    }
}

D:\>javac -encoding gbk Test06.java

D:\>java Test06
1-100累加和为:5050
1-100偶数累加和为:2550

例2:找出水仙花数

public class Test07 {
    public static void main(String[] args) {

        int count = 0;
        for(int i=100;i<1000;i++) {
            int a = i / 100;       // 百位数字     
            int b = i / 10 % 10;   // 十位数字
            int c = i % 10;        // 个位数字
            int sum = a*a*a+b*b*b+c*c*c;
            if (sum == i) {
                System.out.println(i + "是水仙花数");

                count++;
            }
        }

        System.out.println("水仙花数的个数为:" + count);
    }
}

注意任意数字的指定位置上的数:先用整除,再用取余

注意定义变量要定义类型,语句结束要有;

注意for循环和count之间的缩进关系

水仙花数:三位数,个位、十位、百位的数字立方和等于原数

D:\>javac -encoding gbk Test07.java

D:\>java Test07
153是水仙花数
370是水仙花数
371是水仙花数
407是水仙花数

水仙花数的个数为:4

④ while循环语句格式

初始化语句;

while (条件判断语句) {

        循环体语句;

        条件控制语句;

}

先执行初始化语句,执行条件判断语句,结果为false则循环结束,为true继续执行,执行循环体语句,执行条件控制语句,回到条件判断继续循环

public class WhileDemo {
    public static void main(String[] args) {
        int i = 1;
        while (i < 6) {
            System.out.println("sqhyszd");
            i++;
        }
    }
}

输出五遍sqhyszd

注:for循环适合次数已知的情况,while循环适合需要记录循环次数、不知道循环多少次

⑤ do…while循环语句格式

初始化语句;

do {

        循环体语句;

        条件控制语句;

} while (条件判断语句);

首先执行初始化语句,再执行循环体语句、条件控制语句,执行条件判断语句,结果为false结束循环,结果为true继续执行,回到循环体继续循环。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值