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

相关推荐
alfiy6 分钟前
Elasticsearch学习笔记(四) Elasticsearch集群安全配置一
笔记·学习·elasticsearch
向上的车轮8 分钟前
Django学习笔记十一:部署程序
笔记·学习·django
夜月行者10 分钟前
如何使用ssm实现基于SSM的宠物服务平台的设计与实现+vue
java·后端·ssm
程序猿小D14 分钟前
第二百六十七节 JPA教程 - JPA查询AND条件示例
java·开发语言·前端·数据库·windows·python·jpa
潘多编程28 分钟前
Java中的状态机实现:使用Spring State Machine管理复杂状态流转
java·开发语言·spring
_阿伟_1 小时前
SpringMVC
java·spring
代码在改了1 小时前
springboot厨房达人美食分享平台(源码+文档+调试+答疑)
java·spring boot
alfiy1 小时前
Elasticsearch学习笔记(五)Elastic stack安全配置二
笔记·学习·elasticsearch
pumpkin845141 小时前
CXO、CRO、CMO、CDMO相关概念
笔记
wclass-zhengge1 小时前
数据结构篇(绪论)
java·数据结构·算法