Java语法中一些需要注意的点(仅用于个人学习)

news2025/1/8 5:32:26

1.当字符串和其他类型相加时,基本都是字符串,这与运算顺序有关。

2.Java中用ctrl + d 来结束循环输入。

3.nextLine() 遇到空格不会结束。

4.方法重载

4.1. 方法名必须相同

4.2. 参数列表必须不同(参数的个数不同、参数的类型不同、类型的次序必须不同)

4.3. 与返回值类型是否相同无关

两个方法仅仅只是返回值不同,是构不成方法重载的

5.方法签名

在同一个作用域中不能定义两个相同名称的标识符。

比如:方法中不能定义两个名字一样的变量,那为什么类中就可以定义方法名相同的方法呢?

方法签名即:经过编译器编译修改过之后方法最终的名字。具体方式:方法全路径名+参数列表+返回值类型,构成方法完整的名字。

public class Test {

    public static  int add(int x, int y) {
        return x + y;
    }

    public static double add(double x,double y) {
        return x + y;
    }

    public static void main(String[] args) {
        System.out.println(add(1, 2));
        System.out.println(add(1.5, 2.5));
    }
}

上述代码经过编译之后,然后使用JDK自带的javap反汇编工具查看。

具体操作:1. 先对工程进行编译生成.class字节码文件

2. 在控制台中进入到要查看的.class所在的目录

3. 输入:javap -v 字节码文件名字即可 

6.数组

数组的动态初始化

int[]array=newint[10];

 数组的静态初始化

int[]array1=newint[]{0,1,2,3,4,5,6,7,8,9};

静态初始化可以简写,省去后面的new 类型[ ] 

//注意:虽然省去了newT[],但是编译器编译代码时还是会还原
int[]array1={0,1,2,3,4,5,6,7,8,9};
double[]array2={1.0,2.0,3.0,4.0,5.0};
String[]array3={"hell","Java","!!!"};

 动态初始化和静态初始化可以分为两步,但省略格式是不行的。

int[] array;
array = new int[10];
int[]array2;
array2=newint[]{10,20,30};
//注意省略格式不可以拆分,否则编译失败
//int[]array3;
//array3={1,2,3};

7.什么叫局部变量?

局部变量就是定义在方法内部的变量 

8.Java帮你实现了一个打印数组的方法

int[] array = new int[]{1,2,3,4,5};
System.out.println(Arrays.toString(array));

9.局部变量 引用变量 

10. 

11.传引用一定能改变实参的值吗?不一定 

public static void func1(int[] array) {
        array = new int[]{4,5,6};
    }

    public static void main(String[] args) {
        int a = 3;
        int[] array = new int[a];
        System.out.println("使用前:" + Arrays.toString(array));
        func1(array);
        System.out.println("使用后:" + Arrays.toString(array));
    }
}

这个是因为形参指向了一个新的对象,并没有指向实参所指向的对象。 

12.数组既可以作为参数,也可以作为函数返回值。 

13.拷贝数组的方法

 

14. 二维数组

public static void main(String[] args) {
     int[][] array = new int[][]{{1,2,3},{4,5,6}};
     System.out.println(array[0]);
     System.out.println(array[1]);
}

 

二维数组本质上也就是一维数组,它的元素里存放的是地址, 这个地址指向的又是另一个一维数组。

Java中不可以省略行,但可以省略列。 

15.不规则的二维数组

public static void main(String[] args) {
        int[][] array = new int[2][];
        array[0] = new int[3];
        array[1] = new int[5];
        for (int i = 0; i < array.length; i++) {
            for (int j = 0; j < array[i].length; j++) {
                System.out.print(array[i][j]+ " ");
            }
            System.out.println();
        }
    }

 

 

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/982025.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【大数据之Kafka】八、Kafka Broker之生产经验

1 节点服役和退役 1.1 服役新节点 新节点准备&#xff1a; &#xff08;1&#xff09;关闭hadoop104&#xff0c;并右键执行克隆操作。 &#xff08;2&#xff09;开启hadoop105&#xff0c;并修改 IP 地址为105。 vim /etc/sysconfig/network-scripts/ifcfg/ens33&#xff…

Edge官方鼠标手势

前言 日期&#xff1a;2023年8月 Edge浏览器目前已自带官方的鼠标手势功能&#xff0c;若要使用首先将浏览器更新至最新版&#xff0c;下文介绍使用方法。 官方鼠标手势 前提 更新Edge至最新版&#xff0c;并关闭其它鼠标手势扩展。 开启鼠标手势 打开Edge浏览器的设置&…

Linux c++开发-04-让Hello World更像一个工程

外层CMakeLists.txt src中的CMakeLists.txt ADD_EXECUTABLE(hello main.cpp)main.cpp 然后 cd build cmake … make ./bin/hello

TCPIP协议学习

TCP协议 连接导向&#xff1a;TCP是一种面向连接的协议&#xff0c;这意味着通信的两端在建立通信之前必须通过握手过程建立连接。握手过程包括三次握手&#xff0c;其中客户端向服务器发送连接请求&#xff0c;服务器回复确认&#xff0c;最后客户端再次确认连接。这样建立的连…

基于springboot+vue的校园失物招领系统-前后端分离(内含文档+源码+教程)

近年来&#xff0c;信息化管理行业的不断兴起&#xff0c;使得人们的日常生活越来越离不开计算机和互联网技术。首先&#xff0c;根据收集到的用户需求分析&#xff0c;对设计系统有一个初步的认识与了解&#xff0c;确定校园失物招领网站的总体功能模块。然后&#xff0c;详细…

InstructPix2Pix(CVPR2023)-图像编辑论文解读

文章目录 1.摘要2.背景3.算法3.1 生成多模态训练集3.1.1生成指令及成对caption3.1.2 依据成对的caption生成成对的图像 3.2 InstructPix2Pix 4.实验结果4.1基线比较4.2消融实验 5.结论 论文&#xff1a; 《InstructPix2Pix: Learning to Follow Image Editing Instructions》 …

什么是系统集成项目管理工程师,证书难考吗?

系统集成项目管理工程师&#xff0c;属于软考三个级别中的 “中级”&#xff0c;相当于中级职称。 系统集成项目管理程师是工信部和人社部举办的软考中新增开的一门考试。软考全称全国计算机技术与 软件专业技术资格&#xff08;水平&#xff09;考试&#xff0c;这门新开的系…

Nacos配置文件更新+热更新+多环境配置共享+集群搭建

对服务配置文件 场景&#xff1a; 如果多个服务对应的配置文件都需要更改时&#xff0c;可以利用配置管理&#xff0c;方便对配置文件进行更新&#xff0c;而且是在本地配置前先读取nacos的配置文件&#xff0c;优先级大于本地配置文件 配置步骤 1.首先在Nacos中的配置列表中增…

0-5V转4-20mA电路

本设计采用运放与三极管做二线制恒流源电路 分析&#xff1a; Va2*V- (1) (2) (3) 联立&#xff08;2&#xff09;&#xff08;3&#xff09;得&#xff1a; &#xff08;5&#xff09; 由于 &#xff08;6&#xff09; …

【AIGC专题】Stable Diffusion 从入门到企业级实战0403

一、前言 本章是《Stable Diffusion 从入门到企业级实战》系列的第四部分能力进阶篇《Stable Diffusion ControlNet v1.1 图像精准控制》第03节&#xff0c; 利用Stable Diffusion ControlNet Canny模型精准控制图像生成。本部分内容&#xff0c;位于整个Stable Diffusion生态…

剑指offer(C++)-JZ61:扑克牌顺子(算法-模拟)

作者&#xff1a;翟天保Steven 版权声明&#xff1a;著作权归作者所有&#xff0c;商业转载请联系作者获得授权&#xff0c;非商业转载请注明出处 题目描述&#xff1a; 现在有2副扑克牌&#xff0c;从扑克牌中随机五张扑克牌&#xff0c;我们需要来判断一下是不是顺子。 有如…

MyBatisPlus 基础Mapperr接口:增删改查

MyBatisPlus 基础Mapper接口&#xff1a;增删改查 插入一条数据 代码 Testpublic void insert() {User user new User();user.setId(6L);user.setName("张三");user.setAge(25);user.setEmail("zhangsanexample.com");userMapper.insert(user);}日志 数…

postman token 请求头添加

思路&#xff1a; 1、登录成功后将 得到的token设置为集合变量 2、在需要携带Authorization的请求头上使用该集合变量 关键代码 const responseData pm.response.json(); if(responseData.code 1) {// 获取tokenconst {data:{token}} responseData// 设置为集合变量pm.colle…

Java8中List转Map报错“java.lang.IllegalStateException: Duplicate key”

排查思路 从报错的关键字中可以大致判断是是key冲突,Duplicate key在数据库的主键冲突错误中经常遇到&#xff0c;个人的思维惯性就联想到了数据库,从这个方向去排查,无果。抓耳挠腮之下&#xff0c;分析如下错误信息 java.lang.IllegalStateException: Duplicate key image(…

java八股文面试[数据库]——索引哪些情况下会失效

查询条件包含 or&#xff0c;会导致索引失效。 隐式类型转换&#xff0c;会导致索引失效&#xff0c;例如 id字段类型是varchar&#xff0c;我们 where id 1&#xff0c;这样就会触发隐式类型转换 like 通配符会导致索引失效&#xff0c;注意:”ABC%” 不会失效&#xff0c;…

问道管理:华为产业链股再度拉升,捷荣技术6连板,华力创通3日大涨近70%

华为产业链股6日盘中再度拉升&#xff0c;到发稿&#xff0c;捷荣技能涨停斩获6连板&#xff0c;华映科技亦涨停收成3连板&#xff0c;华力创通大涨超19%&#xff0c;蓝箭电子涨约11%&#xff0c;力源信息涨超4%。 捷荣技能盘中再度涨停&#xff0c;近7日已累计大涨超90%。公司…

如何成为一个高效的电商数据分析师

如何成为一个高效的电商数据分析师 文章目录 如何成为一个高效的电商数据分析师前言市场洞察平台品类品牌淘天京东抖音 商品 总结 前言 电商数据分析师 在我看来这个角色的定义其实很宽泛&#xff0c;现在从事电商这门生意的人都可以是&#xff0c;而且应该是一名电商数据分析师…

[BSidesCF 2019]Kookie 1 , cookie伪造

给了一个用户和密码 用户名&#xff1a;cookie 密码&#xff1a;monster 登录后查看cookie 发现就是用户名维持登录 那么修改用户名为 admin 得到flag

原型-设计模式

原型设计模式 原型模式应用场景&#xff1a;创建一个对象比较复杂&#xff0c;当前存在一个和需要创建的对象极其相似&#xff0c;我们就可以采用原型模式&#xff0c;在原来的对象上进行一个修改。 修改方案&#xff1a;在原来的基础上进行拷贝&#xff0c;在进行部分的修改。…

Pytest系列-快速入门和基础讲解(1)

前言 目前有两种纯测试的测试框架&#xff0c;pytest和unittestunittest应该是广为人知&#xff0c;而且也是老框架了&#xff0c;很多人都用来做自动化&#xff0c;无论是UI还是接口pytest是基于unittest开发的另一款更高级更好用的单元测试框架 单元测试框架介绍 单元测试…