【详细+超基础】Java-学习笔记 04

简介: 【详细+超基础】Java-学习笔记 04

Java程序的流程控制语句


顺序语句


按照程序从上到下、从左到右依次执行


条件语句


  • if 语句
if 条件语句
    if(布尔表达式){
    }
if ...else 语句
    if(布尔表达式){
    }else{
    }
if ...else if 语句
    if(布尔表达式){
    }else if(布尔表达式){
    }else if(布尔表达式){
    }else{
    }
  • switch  语句
switch (表达式){
    case 常量1:
         语句1;
         break;
    case 常量2:
         语句2;
         break;
    default:
         语句;
         break; 
}   
switch 语句会先计算表达式的值


循环结构


while循环


while(布尔表达式) {
    循环体;
}

do-while

do {
    循环体;
}whlie(布尔表达式);

break、continue 关键字

break的作用是跳出当前循环块(for、while、do while)或程序块(switch)。在循环块中的作用是跳出当前正在循环的循环体。在程序块中的作用是中断和下一个case条件的比较。

continue用于结束循环体中其后语句的执行,并跳回循环程序块的开头执行下一次循环,而不是立刻循环体。

for(int i = 1; i < 10; i++) { 
   if(i == 5) 
       break; 
   System.ut.println("i = " + i); 
 }

这段程序会显示i = 1到4,因为当 i 等于5时就会执行break而离开循环。

for(int i = 1; i < 10; i++) { 
   if(i == 5) 
    continue; 
   System.out.println("i = " + i); 
} 

这段程序会显示1到4,与6到9。当 i 等于5时,会执行continue直接结束此次循环,这次循环中System.out.println()行并没有被执行,然后从程序块开头执行下一次循环,所以5并没有被显示。


方法Method


1、方法格式:


修饰符 返回值类型 方法名称(参数类型 参数名称,.....){
方法体
return 返回值;
}


说明:


修饰符: public static

返回值类型:方法最终产生的数据结果是什么类型

参数类型:进入方法的数据是什么类型

参数名称:进入方法的数据对应的变量名称(若参数有多个,使用逗号进行分隔)

方法体:方法需要做的事情,若干行代码

return:一能够停止当前方法 二是将后面的返回值还给调用处

返回值:方法执行后最终产生的数据结果


2、三种调用格式:


1.单独调用:方法名称(参数)

2.打印调用:System.out.println(方法名称(参数))

3.赋值调用: int num=方法名称(参数)


3、使用方法的注意事项:


1.方法应定义在类当中,但是不能在方法当中再定义方法,不能嵌套

2.方法定义的前后顺序无所谓,方法定义之后不会执行,如果希望执行,一定要去调用

3.如果方法有返回值,那么必须有“return 返回值”且返回值数据与返回值类型要一致


4、方法重载 Overload:


:多个方法名称一样,但是参数列表不一样

对于功能类似的方法,因为参数列表不一样,需要记住太多的方法名称和调用多个方法的麻烦,方法重载就能实现一个方法名称实现多个类似的功能


注意事项


方法重载与下列因素有关:


1.参数个数不同

2.参数类型不同

3.参数多类型顺序不同

方法重载与下列因素无关: 1.与参数名称无关 2.与方法的返回值无关


数组Array


1、数组概念与特点:


一种容器,可以同时存放多个数据组


特点:


1.数组是一种引用数据类型

2.数组当中的多个数据,类型必须统一

3.数组的长度在程序运行期间不可改变


2、数组的初始化:


在内容当中创建一个数组,并向其中赋予一些默认值


两种常见的初始化方式:


1.动态初始化(指定长度)

2.静态初始化(指定内容)


动态初始化数组的格式:


数据类型[ ]  数组名称 =new 数据类型 [数组长度];


解释含义:


左侧数据类型:数组当中保存的数据的类型

左侧的中括号:代表这是一个数组

右侧的new:代表创建数组的动作

右侧数据类型:与左侧保持一致


静态态初始化数组的格式:


数据类型[] 数组名称 =new 数据类型 [] {元素1,元素2,.......};

数据类型[] 数组名称={元素1,元素2.....};


3、数组的基本运用


数组的初始化和遍历


数组初始化和遍历都有三种方式,参考如下代码。

import java.util.Arrays;
 public class ArrayDemo{
     public static void main(String[] args){
         //定义数组的三种方式
         //方法1 动态初始化
         int[] arr1=new int[3];
         arr1[0]=1;
         //方法2 静态初始化
         int[] arr2=new int[]{1,2,3};
         //方法3 静态初始化省略写法
         int [] arr3={1,2,3};
         //遍历数组的三种方式
         //方法1 普通for循环,通过下标获取,并且可以改变数组的值
         System.out.println("-----------普通for循环-----------");
         for(int i=0;i<arr1.length;i++){
            arr1[i]*=2;
         }
         for(int i=0;i<arr1.length;i++){
             System.out.println(arr1[i]);
         }
         //方法2 增强型for循环,只能遍历数组,不能改变数组的值
        System.out.println("-----------增强型for循环-----------");
         for(int number:arr2){
             number*=2;
         }
         for(int number:arr2){
             System.out.println(number);
        }        
         //方法3 使用Arrays.toString()方法返回
         System.out.println("-----------使用Arrays.toString()方法返回-----------");
         String str=Arrays.toString(arr3);
         System.out.println(str);        
     }
 }


求数组中最值


求数组中最值一般有两种思路,一种是比较数值直接得到最值,另外一种是比较后得到索引,本次使用后者。

public class ArrayMax{
     public static void main(String[] args){
         //获取一个数组中的最大值,采用记录下标的方式
         int[] arr=new int[]{12,34,1,7,5,44,98};
         int index=0;
        for(int i=1;i<arr.length;i++){
                if(arr[i]>arr[index]){
                     index=i;
                 }
         }    
         //输出最大值
         System.out.println(arr[index]);
     }
 }


Java中的内存(简单了解)


Java中的内存划分(5个部分)1.栈(Stack):存放的都是方法中的局部变量。方法的运行一定要在栈当中运行。

局部变量:方法的参数,或者是方法{}内部的变量。
作用域:一旦超出作用域,立即从栈内存当中消失。


2.堆(Heap):凡是new出来的东西,都在堆当中


堆内存里面的东西都有一个地址值:16进制。

堆内存里面的数据,都有默认值。规则:

整数              默认为0

浮点数          默认为0.0

字符              默认为'\u0000'

布尔              默认为false

引用类型      默认为null


3.方法区(Method Area):存储class相关信息,包含方法的信息。

4.本地方法栈(Native Method Stack):与操作系统相关。

5.寄存器(pc Register):与CPU相关。


相关文章
|
6月前
|
存储 Java
Java学习笔记 List集合的定义、集合的遍历、迭代器的使用
Java学习笔记 List集合的定义、集合的遍历、迭代器的使用
101 4
|
4月前
|
存储 缓存 Java
java基础:IO流 理论与代码示例(详解、idea设置统一utf-8编码问题)
这篇文章详细介绍了Java中的IO流,包括字符与字节的概念、编码格式、File类的使用、IO流的分类和原理,以及通过代码示例展示了各种流的应用,如节点流、处理流、缓存流、转换流、对象流和随机访问文件流。同时,还探讨了IDEA中设置项目编码格式的方法,以及如何处理序列化和反序列化问题。
135 1
java基础:IO流 理论与代码示例(详解、idea设置统一utf-8编码问题)
|
3月前
|
Java 数据库连接 API
Spring 框架的介绍(Java EE 学习笔记02)
Spring是一个由Rod Johnson开发的轻量级Java SE/EE一站式开源框架,旨在解决Java EE应用中的多种问题。它采用非侵入式设计,通过IoC和AOP技术简化了Java应用的开发流程,降低了组件间的耦合度,支持事务管理和多种框架的无缝集成,极大提升了开发效率和代码质量。Spring 5引入了响应式编程等新特性,进一步增强了框架的功能性和灵活性。
77 0
|
5月前
|
存储 安全 Java
Java修仙之路,十万字吐血整理全网最完整Java学习笔记(基础篇)
从Java环境的搭建到实际代码的编写,从基本用法的讲解到底层原理的剖析,深度解析Java基础知识。本文是《Java学习路线》专栏的起始文章,旨在提供一套完整的Java学习路线,覆盖Java基础知识、数据库、SSM/SpringBoot等框架、Redis/MQ等中间件、设计模式、架构设计、性能调优、源码解读、核心面试题等全面的知识点,并在未来不断更新和完善,帮助Java从业者在更短的时间内成长为高级开发。
Java修仙之路,十万字吐血整理全网最完整Java学习笔记(基础篇)
|
5月前
|
安全 Java API
【Java面试题汇总】Java基础篇——String+集合+泛型+IO+异常+反射(2023版)
String常量池、String、StringBuffer、Stringbuilder有什么区别、List与Set的区别、ArrayList和LinkedList的区别、HashMap底层原理、ConcurrentHashMap、HashMap和Hashtable的区别、泛型擦除、ABA问题、IO多路复用、BIO、NIO、O、异常处理机制、反射
|
5月前
|
存储 安全 Java
Java修仙之路,十万字吐血整理全网最完整Java学习笔记(进阶篇)
本文是Java基础的进阶篇,对异常、集合、泛型、Java8新特性、I/O流等知识进行深入浅出的介绍,并附有对应的代码示例,重要的地方带有对性能、底层原理、源码的剖析。适合Java初学者。
Java修仙之路,十万字吐血整理全网最完整Java学习笔记(进阶篇)
|
4月前
|
Java 数据安全/隐私保护
java学习笔记(基础习题)
java学习笔记(基础习题)
59 0
|
4月前
|
Java 程序员 开发工具
java学习笔记
java学习笔记
55 0
|
5月前
|
存储 安全 Java
Java修仙之路,十万字吐血整理全网最完整Java学习笔记(高级篇)
本文是“Java学习路线”中Java基础知识的高级篇,主要对多线程和反射进行了深入浅出的介绍,在多线程部分,详细介绍了线程的概念、生命周期、多线程的线程安全、线程通信、线程同步,并对synchronized和Lock锁;反射部分对反射的特性、功能、优缺点、适用场景等进行了介绍。
|
6月前
|
SQL druid Java
Java数据库部分(MySQL+JDBC)(二、JDBC超详细学习笔记)(下)
Java数据库部分(MySQL+JDBC)(二、JDBC超详细学习笔记)
79 3
Java数据库部分(MySQL+JDBC)(二、JDBC超详细学习笔记)(下)