JavaSE学习笔记第一弹

目录

什么是JavaSE

JavaSE的基本语法规范

JavaSE的基本语法

变量和常量

变量

​​​​​​​​编辑

常量

注释

基本数据类型

整型

字符串和字符型

小数型/浮点型

布尔型

类型转换

隐式类型转换

显示类型转换

运算符

赋值和算术运算符

关系运算符

逻辑运算符

流程控制

选择结构

if

switch

循环结构

for循环

while循环

do-while

实战练习

题一

背景

输入输出

样例

提示

来自博主的代码提示

题二

背景

输入输出

提示

来自博主的代码提示

总结


我们今天来学习一下JavaSE,拓展一下自己的后端知识,并分享给大家,与大家共勉。

其中我会把演示代码和运行结果展示在笔记当中,运行环境是2022版的IDEA。大家使用eclipse或其他编译器也是可以的,大差不差。


什么是JavaSE

JavaSE,全称为Java Standard Edition,是Java平台的标准版,它构成了Java技术的基础部分。JavaSE提供了完整的Java编程环境,包含了开发Java应用程序所必需的核心类库、API(应用程序接口)和工具,如Java虚拟机(JVM)、Java语言规范、标准类库等。

JavaSE允许开发者创建和部署在桌面、服务器、嵌入式环境和实时环境中运行的Java应用程序。它支持基本的网络功能、图形用户界面(GUI)、数据库连接(通过JDBC)、多线程、安全机制等,同时还包括了用于开发JavaWeb服务的类库。

JavaSE的广泛应用,得益于其跨平台的特性,即"一次编写,到处运行"(Write Once, Run Anywhere,WORA),这使得Java应用程序可以在任何安装了Java虚拟机的设备上运行,无需重新编译。这一特性极大地简化了软件分发和维护的复杂性,也促进了Java的普及和使用。


JavaSE的基本语法规范

所有的Java语句必须以`;`结尾。无论是`()`、`[]`还是`{}`,所有的括号必须一一匹配。主方法的代码只能写在`{}`中。

JavaSE的基本语法

变量和常量

变量

变量就是一个可变的量,例如定义一个int类型的变量(int就是整数类型)。我们能够随意更改它的值,变量可以是类的变量,也可以是方法内部的局部变量

java 复制代码
public class Main {
    public static void main(String[] args) {
        int a = 10;
        System.out.println("a = " + a);
        a = 20;
        System.out.println("a = " + a);
        a = 10;
        System.out.println("a = " + a);
    }
}

​​​​​​​

需要注意的是,Java是强类型语言,只有明确定义了变量之后,你才能使用。一旦被指定某个数据类型,那么它将始终被认为是对应的类型(和JS不一样)。

同样变量名需要注意以下规则:标识符以由大小写字母、数字、下划线(_)和美元符号($)组成,但是不能以数字开头、大小写敏感、不能有空格、@、#、+、-、/ 等符号、不可以是 true 和 false、不能与Java语言的关键字重名。我们也应当最好使用驼峰式命名规则,做到见名知其意。

常量

常量就是无法修改值的变量,常量的值,只能定义一次。

java 复制代码
public class Main {
    public static void main(String[] args) {
        final int a = 10;
        a = 10;
    }
}

常量前面必须添加final关键字(C语言里面是const,虽然Java也有,但是不能使用)。


注释

注释包括单行注释和多行注释,注释并不会执行,在日常撰写代码的过程中应当及时留下自己写下这段代码的足迹,方便以后的自己或者他人阅览代码时的方便。下面这段代码在运行后什么都不会发生。

java 复制代码
public class Main {
    public static void main(String[] args) {
        //我是单行注释
        /*
         * 我是
         * 多行注释
         */
    }
}

基本数据类型

整型

整数类型是最容易理解的类型,在Java中,整数类型包括以下几个小种类:

  1. byte 字节型 (8个bit)范围:-128~+127。
  2. short 短整形(16个bit)范围:-32768~+32767。
  3. int 整形(32个bit)最常用的类型。
  4. long 长整形(64个bit)最后需要添加l或L。

如果连长整型都无法容纳,那可以用BigInteger来解决。

字符串和字符型

在Java中存在字符类型能够代表一个字符:char 字符型(16个bit)范围是0 ~ 65535。字符需要使用单引号包裹起来,例如:

java 复制代码
public class Main {
    public static void main(String[] args) {
        char a = 'A';
        System.out.println(a);
    }
}

String就是Java中的字符串类型(注意,它是一个类,创建出来的字符串本质是一个对象,不是我们的基本类型)字符串就像它的名字一样,代表一串字符,也就是一句完整的话。字符串用双引号括起来,比如:

java 复制代码
public class Main {
    public static void main(String[] args) {
        String str = "这是一个水印,这段代码和这篇笔记由CSDN的PleaSure乐事撰写,如有发现抄袭,请私信联系";
        System.out.println(str);
    }
}

小数型/浮点型

在Java中,小数类型主要包含32bit的float单精度浮点型和64位的double双精度浮点型。同样,如果双精度无法解决,我们可以用BigDecimal来解决。当然还有一种方法是我们能用数组或字符串来进行浮点数表示,这样的方式更为复杂,但是相应的好处也就更多。

布尔型

布尔类型(boolean)只有true和false两种值,要么为真,要么为假,布尔类型的变量通常用作流程控制判断语句。同样,我们可以用0和1来分别代替false和true,效果类似,但是不如直接使用布尔型来的直观。


类型转换

隐式类型转换

隐式类型转换支持字节数小的类型自动转换为字节数大的类型,整数类型自动转换为小数类型,转换规则如下:

byte→short(char)→int→long→float→double

java 复制代码
public class Main {
    public static void main(String[] args) {
        byte b = 9;
        short s = b;
        int i = s;
        long l = i;
        float f = l;
        double d = f;
        System.out.println(d);
    }
}

显示类型转换

显示类型转换也叫做强制类型转换,即牺牲精度强行进行类型转换。实例如下:

java 复制代码
public class Main {
    public static void main(String[] args) {
        int i = 128;
        byte b = (byte)i;
        System.out.println(b);
    }
}

​​​​​​​


运算符

赋值和算术运算符

赋值运算符`=`是最常用的运算符,其实就是将我们等号右边的结果,传递给等号左边的变量,比如int a = 10。

算术运算符就是我们常说的加减乘除取余,分别用符号+-*/%来表示。其中加号需要特别注意,在Java当中,加号也可以当作字符串连接符使用,比如下面这段代码,虽然我们只是更换了几个变量的顺序,但是含义却差别非常大:

java 复制代码
public class Variable {
    public static void main(String[] args) {
        int a = 100,b = 100;
        String str = "老八秘制小汉堡";
        System.out.println(a+b);
        System.out.println("--------------");
        System.out.println(a+str);
        System.out.println("--------------");
        System.out.println(str+a);
        System.out.println("--------------");
        System.out.println(str+str);
        System.out.println("--------------");
        System.out.println(a+b+str);
        System.out.println("--------------");
        System.out.println(str+a+b);
        System.out.println("--------------");
    }
}

另外,算术运算符还包括++和--,我们接下来以++为例,--同理。

a++的含义是在a原有的基础上把a的值增加1,++a也是这个意思。但是两者有一定微小的区别,a++是返回a的值在进行增加,++a是先进行增加再返回值,具体事例如下:

java 复制代码
public class Main {
    public static void main(String[] args) {
        int a = 10;
        a++;
        System.out.println(a);
        a = 10;
        System.out.println(a++);
        System.out.println(a);
        a = 10;
        System.out.println(++a);
        System.out.println(a);
    }
}

为了使得代码更简洁,你还可以使用扩展的赋值运算符,包括`+=`、`-=`、`/=`、`*=`、`%=`,和自增自减类似,先执行运算,再返回结果,同时自身改变。比如a += 2等价于a = a + 2。

关系运算符

关系运算符主要包括大于>小于<等于==大于等于>=小于等于<=和不等于!=,结果只能是布尔类型,一般只用于基本类型的比较。比如下面这段代码的结果就是true:

java 复制代码
int a = 10;
int b = 2;
boolean x = a > b;
System.out.println(x);

逻辑运算符

逻辑运算符两边只能是boolean类型或是关系/逻辑运算表达式,返回值只能是boolean类型,主要包括以下三种运算:

  1. 与&&要求两边同时为true才能返回true
  2. 或||要求两边至少要有一个为true才能返回true
  3. 非!一般放在表达式最前面,表达式用括号扩起来,表示对表达式的结果进行反转
java 复制代码
public class Main {
    public static void main(String[] args) {
        int a = 10;
        int b = 2;
        boolean x = a > b && a < b;
        System.out.println(x);
        a = 10;
        b = 2;
        x = a > b || a <= b;
        System.out.println(x);
        a = 10;
        b = 2;
        x = !(a > b);
        System.out.println(x); 
    }
}

流程控制

选择结构

选择结构主要由if和switch两种。选择结构主要用于帮助我们根据条件判断,再执行哪一块代码。

if

if语句的基本格式如下,其中else并不一定需要,省略else部分代码也可以正常执行。像这段代码中,我们在if当中再嵌套一个if的操作也是允许的。

if(判断条件){

//判断成功执行的内容

if(判断条件){

//判断成功执行的内容

}

//if的内容执行完成后,后面的内容正常执行

}else{

//判断失败执行的内容

}

//if的内容执行完成后,后面的内容正常执行

switch

虽然`else-if`能解决多分支判断的问题,但是效率实在是太低了,多分支if采用的是逐级向下判断,费时费力,因此switch就诞生了。

switch(判断主体){

case 值1:

//运行xxx

break; //break用于跳出switch语句,不添加会导致程序继续向下运行

case 值2:

//运行xxx

break;

case 值3:

//运行xxx

break;

}

循环结构

循环主要分为以下三种:for、while、do-while。

for循环

for循环比较灵活,适配环境比较多。具体格式如下:

for(初始条件;循环条件;更新){

//循环执行的内容

}

//循环结束后,继续执行

其中,初始条件是循环开始时的条件,一般用于定义控制循环的变量;循环条件是每轮循环开始之前,进行一次判断,如果满足则继续,不满足则结束,要求为boolean变量或是boolean表达式;更新是每轮循环结束后都会执行的内容,一般写增量表达式。举个栗子,可以看看这个:

java 复制代码
public class Main {
    public static void main(String[] args) {
        for(int i = 0;i < 10;i++){
            System.out.println("点赞收藏关注");
        }
    }
}

但是如果不加任何循环条件则循环会无限制的执行下去。

while循环

while循环和for循环类似,但是它仅需要添加维持循环的判断条件即可。具体格式如下:

while(循环条件){

//循环执行的内容

}

java 复制代码
public class Main {
    public static void main(String[] args) {
        int i = 1;
        while(i<=5){
            System.out.println("来自CSDN的PleaSure乐事的水印");
            i++;
        }
    }
}
do-while

do-while和while类似,区别在于前者一定会执行一次循环体内的内容在进行判断,while并不会。格式如下:

do{

//执行内容

}while(循环条件);


实战练习

这里我们搜罗了几道简单题提供给大家参考与练习,希望可以对大家的知识巩固有所帮助,这些题博主本人已经AC,虽然得出的不是最优解,但是保证题目肯定有题解,大家可以放心打开编译器来爽快的刷题吧!

题一

背景

有个群叫我爱睡觉觉,里面有只雕每天早上都会说"早上好这个世界",然后有朵花就排队型会说"早上好这个世界"。但是某只就会去破坏队形。每隔两天她都能成功破坏队形。假设第一天她成功破坏了队形,请问第n天她能不能成功破坏队形?

输入输出

输入:第一行输入一个T,表示有T组测试数据(0<T<=10000)

每组测试数据第一行输入一个n,代表第n天(0<n<=1000,000,000)

输出:对于每组数据输出一行字符串,如果某只成功破坏了队形,则输出"showshowshow";否则输出"forever love"。

样例

输入:1 4

输出:showshowshow

提示

隔两天指的是第三天,例如1和4之间就隔了2、3两天。

来自博主的代码提示

java 复制代码
while(T--){
    //这不是最终答案,只是一部分代码提示,请自行补全,谢谢!
    outcome=n%3;
}

如果小伙伴们愿意分享,可以把自己完成的代码放在评论区与大家讨论,为大家分享自己的解题思路。


题二

背景

画一个九九乘法表。一个式子内没有空格,式子间有一个空格,每行最后一个式子后没有空格。前4行是这样的:

1*1=1

2*1=2 2*2=4

3*1=3 3*2=6 3*3=9

4*1=4 4*2=8 4*3=12 4*4=16

输入输出

输入:没有啊

输出:你猜啊

提示

三连

来自博主的代码提示

java 复制代码
while(i<=n){
//这里的代码依然需要自己补全,需要注意i++和j++的位置,就可以解出来
    while(j<=i){

    }
}

总结

以上就是今天的JavaSE学习总结第一弹,希望大家能喜欢,如果对大家有所帮助,希望大家可以微我留下点赞、关注和收藏,或者在评论区留下您的喜欢也可以,这对我真的很重要!您的喜欢是我更新的动力,谢谢!

相关推荐
小熊officer3 分钟前
Nginx中正向代理,反向代理,负载均衡
java·nginx·负载均衡
信码由缰15 分钟前
Java 应用容器化与部署
java
摇滚侠29 分钟前
2025最新 SpringCloud 教程,编写微服务 API,笔记08
笔记·spring cloud·微服务
方白羽29 分钟前
Kotlin遇上Java 静态方法
android·java·kotlin
通往曙光的路上31 分钟前
焚决糟糕篇
java·spring boot·tomcat
狂奔小菜鸡1 小时前
Day18 | 深入理解Object类
java·后端·java ee
jiayong231 小时前
Maven NUL文件问题 - 解决方案实施报告
java·maven
未秃头的程序猿1 小时前
🔒 从单机到分布式:三大锁机制深度剖析与实战指南
java·后端
大猫子的技术日记1 小时前
[百题重刷]前缀和 + Hash 表:缓存思想, 消除重复计算
java·缓存·哈希算法
s***35301 小时前
Spring Boot3.x集成Flowable7.x(一)Spring Boot集成与设计、部署、发起、完成简单流程
java·spring boot·后端