JavaSE JAVA基础总结(上) 我的学习笔记


前言: 学习java有了两年半了,之前从没在CSDN上发布,这也是将之前所学习的javaSE的笔记,记录在CSDN上,同时这是是我的第一篇博客,如有写的不对的地方,欢迎大佬斧正!!!

java基础总结下在这:JavaSE JAVA基础总结(下) 我的学习笔记

一、Java基础语法

1.数据类型

数据类型的作用:数据类型就是用来约束变量储存数据的形式 。
数据类型 变量名称 = 初始值;

关键字 数据类型 取值范围 内存占用
byte 整形 -128~127 1个字节
short 整形 -32,768~32,767 2个字节
int 整形 -2,147,483,648~2,147,483,647 4个字节
long 整形 -9,223,372,036,854,775,808到9,223,372,036,854,775,807 8个字节
flaot 浮点数 大约±3.4E+38(有效数字大约6~7位) 4个字节
double 浮点数 大约±1.7E+308(有效数字大约15位) 8个字节
char 字符 0~65535 通常是1个字节,Java中占用2个字节
boolean 布尔 true false 1个字节

除了以上的基础类型还有引用数据类型基本上可以分为三类:
类Class引用,接口interface引用 ,数组引用;可以是我们创建的,也可以是java库中的

2.运算符

算数运算符:

运算符 名称 说明
+ 加法运算符 可以求和,可以拼接String类型的字符串
- 减法运算符 a=-a 取反, a-b 相减
* 乘法运算符 相乘
/ 除法运算符 求商
++ 自增运算符 a++ 先取值再自增1,++a 先自增1再取值
自减运算符 a-- 先取值再自减1,b–先自减1再取值

关系运算符或比较运算符:

运算符 名称 说明
> 大于 检查左边的值是否大于右边的值
< 小于 检查左边的值是否小于右边的值
>= 大于等于 检查左边的值是否大于或等于右边的值。
<= 小于等于 检查左边的值是否小于或等于右边的值
== 等于 检查两个值是否相等
!= 不等于 检查两个值是否不相等

逻辑运算符:

运算符 名称 说明
&& 逻辑与 当且仅当两个操作数都为true时,结果才为true。
|| 逻辑或 如果任一值为为true,结果就为true。
! 逻辑非 真值或假值转换为对应的相反值

赋值运算符:

运算符 名称 说明
= 基本赋值运算符 将一个值或表达式的结果存储在变量中
+= 加法赋值 右边的值加到左边的的值上,结果存入左边
-= 减法赋值 两变量相除
*= 乘法赋值 两变量相乘
/= 除法赋值 求值,如a/b的值
% 取模赋值 求模,如a%b的模

条件运算符(三目运算符):
boolean表达式 ?表达式1:表达式2; 表达式为true执行表达式1,表达式为false,则执行表达式2。

如 1 > 2 ? a = 1:a = 2; 此时a的值为 2。

3.选择结构

选择结构按照顺序结构按照编写的顺序,从上到下依次运行,整体流程是差不多的,像 if ,if…else…,switch 等
执行流程可以概况为:
1.首先计算关系表达式1的值
2.如果值为true就执行语句体1;
3.如果值为false就计算关系表达式2的值
4.如果值为true就执行语句体2;如果值为false就计算关系表达式3…
5.所有表达式均不满足条件则,执行后面的语句内容
选择结构语法:
if结构:

if(结果为boolean的表达式){
   
        语句体;
 	}

if…else…结构:

if(结果为boolean的表达式){
   
        语句体1;
    } else  {
   
        语句体2;
    }

switch结构:

switch(表达式){
   
        case1:
            语句体1
            break;
        case2:
            语句体2
            break;
        default:
            语句体3
            break;

if…else if…else结构:

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

4.循环结构

在某些条件满足的情况下,反复执行特定代码的功能,常见的循环结构有for,while,do…while
循环四要素:
1.循环变量的初始化表达式。
2.循环条件。
3.循环变量的修改。
4.循环体语句块。
循环结构语法:
for循环格式

for(初始化条件1(初始表达式);循环条件语句2(循环条件);迭代语句3(循环变量的修改){
   
         循环体语句4;
 }
 /**
 循环流程:
 1.执行初始化语句,完成循环变量的初始化;
 2.执行循环条件语句 2,看循环条件语句的值是 true ,还是 false;
                 如果是 true ,执行第三步;
                 如果是 false ,循环语句中止,循环不再执行;
 3.执行循环体语句3;
 4.执行迭代语句 4 ,针对循环变量重新赋值;
 5.根据循环变量的新值,重新从第二步开始再执行一遍;
 */

while循环格式

1.初始化语句;
while(2.循环条件 Boolean类型的表达式){
   
       3.循环体语句;
       4.条件控制语句;
}
/**
 循环流程:
 1.执行初始化语句
 2.执行条件判断语句,看其结果是true还是false
             如果是false,循环结束
             如果是true,继续执行
 3.执行循环体语句
 4.执行条件控制语句
 5.回到2继续
 */

do…while循环格式

//1.初始化语句;
do{
   
    2.循环体语句;
    3.条件控制语句;
}while(条件判断语句);
/**
 循环流程:
 1.执行初始化语句
 2. 执行循环体语句
 3. 执行条件控制语句
 4. 执行条件判断语句,看其结果是true还是false
             如果是false,循环结束
             如果是true,继续执行
 5.回到2继续
 */

小结:while是谈好了在干,do…while是干了再说,知道循环多少次最好用for,不知道用while。

补充:
死循环:没有循环次数,或不知道什么时候结束的循环被称为死循环,死循环
死循环格式

//for死循环格式 :
for(初始化条件1;;迭代语句3){
   

}

//while死循环格式 :
while(true){
   

}

//do..while死循环格式 :
do{
   

}while(true);

5.数组

概念: 相同类型数据的有序集合
特点:
1.数组的长度一旦确定不能修改
2.创建数组的时候会在内存中开辟一块连续的空间
3.存取元素的速度快,因为可以通过 [下标index] ,直接定位到任意一个元素
4.数组是引用类型,如果直接打印,打印的是数组的地址

数组的声明和初始化
数组的声明:数据类型[] 数组名;

int [] arr; 声明了arr数据 数据类型为int类型
静态初始化:直接给数组把元素定义好
int [] arr = {
   1,2,3}; 直接规定好
动态初始化:给数组规定长度,然后手动给数组每一个位置添加元素
int [] arr = new arr[10]; 直接规定好此数组长度为10 ,手动添加元素

数组四部走
1.声明数组,告诉计算数据类型是什么
2.分配数组,告诉计算机有几个连续的空间
3.赋值,向格子里面放数据
4.数据处理

int [] arr;
arr = new int[5];
arr[0] = 1;
arr[0] *= 10;

数组遍历
就是将数组中的每个元素分别获取出来。

6.方法

是一段用来完成’‘特定功能’'的代码片段(代码块;在c语言中也称之为函数),Java 里面的方法不能独立存在,所有的方法必须定义在类里面。

方法语句体:

修饰符 返回值类型 方法名( [参数类型1 参数名1, 参数类型2 参数名2,…] ){
方法体;
return 返回值;
}

参数列表中声明的变量:形式参数==>实际参数,形式参数与实际参数为同一数据类型

方法三要素:
返回值、方法名、参数列表

方法的作用:
1.把复用的逻辑抽取出来,封装成方法,提高代码的重用性
2.实现相对独立的逻辑,提高代码的维护性
3.可以对具体实现进行隐藏、封装

方法的调用:
方法的调用这里认识一个关键字 static ,被static 修饰的的方法为静态方法,否则就是非静态方法。也可以说被 static修饰的属于类的,通过"类名.方法名()"调用。没有被static修饰属于对象,通过"对象名.方法()"调用。
在这里我们闯将两个类 一个小猫 一个小狗,小猫类中的cat方法用static修饰,小狗类的dog方法没有被static修饰

public class Cat {
   
    public static void cat(){
   
        System.out.println("小猫吃鱼");
    }
}
public class Dog {
   
    public void dog(){
   
        System.out.println("小狗吃肉");
    }
}

测试类

public class Test1 {
   
    public static void main(String[] args) {
   
        //调用cat方法
        Cat.cat();
        //调用dog方法
        Dog d = new Dog();
        d.dog();
    }
}

方法也是可以调用方法的

public class Test2 {
   
    public static void main(String[] args) {
   
        cat();
    }
    public static void cat(){
   
        System.out.println("小猫吃鱼");
        dog();
    }
    public static void dog(){
   
        System.out.println("小狗吃肉");
    }
}

方法的重载:
同一个类中,方法名字相同,参数列表不同,则是方法重载。

注意:
1.方法重载指同一个类中定义的多个方法之间的关系,
2.参数列表的不同包括,参数个数不同,参数数据类型不同,参数顺序不同
3.方法的重载与方法的修饰符和返回值没有任何关系

作用:
可读性好,方法名称相同,调用的时候,就不需要记那么多的方法名称,而是知道了方法的功能就可以直接的给他传递不同的参数

方法重载的识别技巧:
1.只要是同一个类中,方法名称相同、形参列表不同,那么他们就是重载的方法,其他都不管!
(如:修饰符,返回值类型都无所谓)
2.形参列表不同指的是:形参的个数、类型、顺序不同,不关心形参的名称

方法的重写:

规则:
1.参数列表必须完全与被重写的方法参数列表相同。
2.返回的类型必须与被重写的方法的返回类型相同(Java1.5 版本之前返回值类型必须一样,之后的 Java 版本放宽了限制,返回值类型必须小于或者等于父类方法的返回

### 黑马阿伟 Java 学习资料概述 对于希望深入学习Java编程的人来说,获取高质量的学习资源至关重要。通过使用像XMind这样的工具来整理知识点可以极大地提高记忆效果和理解能力[^1]。 #### 使用 XMind 组织知识结构 为了更好地理解和记住复杂的概念,推荐利用思维导图软件如XMind创建个人化的学习笔记。这种方式不仅有助于强化记忆,还能帮助建立不同知识点之间的联系,从而形成更加完整的知识体系。 ```plaintext 下载地址:链接到具体的XMind模板或其他相关资源 ``` #### 安装必要的开发环境 在开始编写Java程序之前,确保已经安装了适合操作系统的Java虚拟机(JVM),这可以通过安装JRE或更全面的JDK实现。JDK包含了编译器和其他开发所需工具,因此更适合初学者用于实践练习[^2]。 #### 实践案例与作业的重要性 理论学习固然重要,但实际动手编码同样不可或缺。积极参与课堂内外的各种项目实战以及按时完成教师布置的任务可以帮助巩固所学内容并提升解决问题的能力。定期回顾已完成的工作也有助于加深印象。 #### 示例代码解析 以下是关于如何在一个整型数组中找到最大值的一个简单例子: ```java package com.itheima.test; public class Test6 { public static void main(String[] args){ // 定义一个包含多个数值的数组 int[] arr = {1, 5, 7, 3, 8, 10}; // 调用自定义的方法计算该数组的最大值 int max = getMax(arr); // 输出结果至控制台 System.out.println(max); } /** * 获取指定数组中的最大元素。 * * @param arr 输入参数为待处理的一维整形数组 * @return 返回此数组内的最高值 */ public static int getMax(int[] arr){ // 初始化max变量存储当前已知最大的数,默认为首项 int max = arr[0]; // 遍历整个数组比较每一个成员大小更新max直到遍历结束 for (int i = 1; i < arr.length; ++i) { if (arr[i] > max) { max = arr[i]; } } return max; } } ``` 这段代码展示了基本的数据处理流程——接收输入、执行运算最后给出输出;同时也体现了良好的函数设计原则比如单一职责等特性[^3]。 #### 编码规范指导 遵循一定的命名约定可以使代码更具可读性和维护性。例如,在声明局部变量时采用小驼峰命名法(lowerCamelCase),而对于类名则应该使用大驼峰命名法(UpperCamelCase)。此外,了解各种内置数据类型的特性和适用场景也是十分重要的基础知识之一[^4]。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值