java注意项--更新中

前言:

1.大小写规定
  1.1.类名和接口名:每个单词首字母大写。如GoodStudent

                                 是一个单词的时候首字母大写。如Student;

  1.2.变量和方法名:第一个首字母小写,后序首字母大写。如firstName

                                 是一个单词的时候全部小写 如name;
原文链接:https://blog.csdn.net/m0_67474739/article/details/129745810

一、== 和 equal的区别

        在 Java 中:               

  • == 用于比较两个对象的引用是否相同,即它们是否指向相同的内存地址。对于基本数据类型,== 用于比较它们的值是否相等。
  • equals() 是一个方法,用于比较两个对象的内容是否相等。通常需要重写 equals() 方法来定义对象相等的逻辑,因为默认的 equals() 方法是比较对象的引用地址。

        在 Python 中:

  • == 用于比较两个对象的值是否相等。对于对象,它比较的是它们的值,对于基本数据类型也是比较它们的值。
  • 对于自定义的类,可以通过重写 eq() 方法来定义对象相等的逻辑,使得 == 操作符可以比较对象的内容。

2、对1中的这句进行解释 (== 用于比较两个对象的引用是否相同,即它们是否指向相同的内存地址

String s1="hello" 和 String s1 = new String("hello");

  1. String s1 = "hello";
    这种方式是使用字符串字面值直接赋值给变量s1。在Java中,字符串字面值会被放入字符串常量池中。如果字符串常量池中已经存在相同内容的字符串,那么变量s1将指向已存在的字符串对象。如果字符串常量池中没有相同内容的字符串,将创建一个新的字符串对象,并将其放入字符串常量池中,然后变量s1指向这个对象。

    例如:已经存在相同内容的字符串s5,所以s5和s6相等 指向相同的内存地址

    String s5 = "1" + "1";
    String s6 = "11";
    System.out.println(s5 == s6);
  2. String s1 = new String("hello");
    这种方式是使用new关键字创建一个新的字符串对象,不管字符串常量池中是否已经存在相同内容的字符串。这样做会在堆内存中创建一个新的字符串对象,而不是放入字符串常量池中。因此,变量s1将始终指向一个新的字符串对象。

    例如:创建一个新的字符串对象,所以s1和s2指向的不同的内存地址

    String s1 = new String("hello");

    String s2 = new String("hello");

    则s1==s2就是false

总的来说,使用字符串字面值赋值给变量s1会利用字符串常量池来管理字符串对象,而使用new关键字创建字符串对象会在堆内存中创建一个新的对象。这是两者的主要区别。

二、java中&&和&区别

逻辑运算符:&&   | |

位运算符:&  |

三、java与python循环的区别
  1. python中没有do ... while结构,java有
    1. 在 Java 中,for、while 和 do...while 是三种基本的循环结构:

    2. 在 Python 中,也有 for 和 while 循环,但没有 do...while 结构:

  2. java循环为:for(int i=0; i< 10;i ++ ),无range函数,相当于python中的for i in range(10)

四、switch-case的应用

1、判断某年-月,有多少天

public class TestSwitch2 {public static void main(String[] args) {try{Scanner scanner = new Scanner(System.in);System.out.println("请输入年份 1-12: ");// 它的作用是从标准输入(通常是键盘输入)读取下一个整数。int year = scanner.nextInt();System.out.println("请输入月份 1-12: ");int month = scanner.nextInt();int days;switch (month){case 1:case 3:case 5:case 7:case 8:case 10:case 12:days = 31;break;case 4:case 6:case 9:case 11:days = 30;break;case 2:// 闰年的判断条件为:1、能被4整除但不能被100整除 2、或者能被400整除。// 闰年的年份有:1904if (((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0)){days = 29;}else{days = 28;}break;default:System.out.println("无效的月份");return;}System.out.println(month + "月有" + days + "天");}catch (Exception e){System.out.println("输出异常信息:" + e);}}
}

2、判断输入身份证的合法性

package com.java.test1;import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Scanner;/*** @author 啊啊啊* @date 2023/12/20 14:47* @projectname javaTest202312* @methode 判断输入身份证的合法性*/
public class TestSwitchCard {public static void main(String[] args) {// 1、输入身份证Scanner scanner = new Scanner(System.in);System.out.println("请输入身份证号:");// nextLine() 方法会读取并返回输入中的下一行,包括换行符在内。注意要用String 要不然报错String idNumber = scanner.nextLine();// 调用身份证是否合法的函数if (isValidIdNumber(idNumber)) {System.out.println(idNumber + "身份证号是合法的");} else {System.out.println(idNumber + "身份证号是不合法的");}}public static boolean isValidIdNumber(String idNumber) {// 2、判断是否为18位if (idNumber == null || idNumber.length() != 18) {return false;}// 3、判断最后一位是否正确 数字 或 X --- idNumber.charAt(i) 是 Java 中用于获取字符串 idNumber 中索引为 i 的字符的方法char lastChar = idNumber.charAt(17);if (!Character.isDigit(lastChar) && lastChar != 'X' && lastChar != 'x') {return false;}// 验证非最后一位,都是0-9的数字组成for (int i = 0; i < 17; i++) {// 不是数字if (!Character.isDigit(idNumber.charAt(i))) {return false;}}// 4、判断 年-月-日 组成的日期是否合法 411422 19950411 1221,其中substring方法的参数是起始位置和结束位置(不包括结束位置)String birthday = idNumber.substring(6, 14);SimpleDateFormat dateFormat = new SimpleDateFormat("yyyymmdd");dateFormat.setLenient(false);try {dateFormat.parse(birthday);} catch (ParseException e) {return false;}// 均未返回false,则返回true,为合法身份证return true;}}

其中,需要注意的点有:

1.1、键盘输入字符串

Scanner scanner = new Scanner(System.in);
System.out.println("请输入身份证号:");
String idNumber = scanner.nextLine();

1.2、键盘输入整数

Scanner scanner = new Scanner(System.in);
System.out.println("请输入年份 1-12: ");
// 它的作用是从标准输入(通常是键盘输入)读取下一个整数。
int year = scanner.nextInt();

2、根据return值的类型,写 boolean  还是 int等

public static boolean isValidIdNumber(String idNumber) {

3、计算字符串的长度,则 idNumber.length()

4、

idNumber.charAt(i) 是 Java 中用于获取字符串 idNumber 中索引为 i 的字符的方法

5、

Character.isDigit('9') 判断给定的字符是否是数字,是则为true

6、截取字符串的第几位 到 第几位

截取的是 idNumber.substring(6, 14),包括索引6但不包括索引14位
五、包装类和基本数据类型的使用

        参考:java包装类的介绍和使用_java 包装类传参-CSDN博客

使用包装类的示例场景代码

1、在集合类中存储基本数据类型:ArrayList<Integer> list = new ArrayList<>();
int num = 5;
list.add(num); // 自动装箱,将基本数据类型int转换为Integer对象并添加到ArrayList中2、将基本数据类型作为对象进行操作:
void printNumber(Integer num) {System.out.println(num);
}int value = 10;
printNumber(value); // 自动装箱,将基本数据类型int转换为Integer对象并传递给printNumber方法3、类型转换或比较:
String numberStr = "123";
int number = Integer.parseInt(numberStr); // 将字符串转换为整数
Integer a = 5;
Integer b = 5;
if (a.equals(b)) {System.out.println("a and b are equal"); // 使用equals方法比较两个Integer对象的值
}
六、包装类的详细介绍

1.1 Character 类:Character 类在对象中包装一个基本类型 char 的值,也就是需要使用char类型的对象时,可以用Character创建一个Character类

Character ch = new Character('a'); // 用构造函数创建字符串

  • 注意:其中 Character类的方法有 isDigit()  是否是一个数字字符、isLetter() 是否是一个字母

1.2 String 类:

方法1:String str1 = "Tom";

方法2:String str2 = new String("Tom");

注意区别:

String 创建的字符串存储在公共池中(方法1),而 new 创建的字符串对象在堆上(方法2--所以地址是不一样的):

String s1 = "Runoob";              // String 直接创建 --- = "Runoob"
String s2 = "Runoob";              // String 直接创建
String s3 = s1;                    // 相同引用
String s4 = new String("Runoob");   // String 对象创建 --- = new String("Runoob");
String s5 = new String("Runoob");   // String 对象创建 

七、java各种类型的定义方式
java各种类型的定义方式
定义基本数据整数int number = 10;
浮点数double salary = 100.51//双精度浮点数变量
布尔类型boolean isStudent = true;
字符char grade = 'A'
定义引用类型字符串类型String name =  "Tom"
定义Scanner类型Scanner scanner = new Scanner (System.in)
定义Random类型Random random = new Random();
定义数组类型整数数组int[] numbers = {1,2,3,4,5}
字符串数组String[] names = new String[5];
二维数组double[][] maxtix = {{1.0,2.0},{3.0,4.0}}

八、java数组相关的使用(示例)
声明数组变量

double[]  myList 

int[]   myList

创建数组

double[] myList = new double[size];

double[] myList = {1.9, 2.9, 3.4, 3.5};

int[]  array= new int[];

数组可以作为参数传递给方法public static void printArray(int[] array) {
  for (int i = 0; i < array.length; i++) {
    System.out.print(array[i] + " ");
  }
}
数组最为函数的返回值public static int[] reverse(int[] list) {
  int[] result = new int[list.length];
 
  for (int i = 0, j = result.length - 1; i < list.length; i++, j--) {
    result[j] = list[i];
  }
  return result;
}
多维数组String[][] str = new String[3][4];
多维数组初始化

int[][] a = new int[2][3];

//二维数组 a 可以看成一个两行三列的数组。

参考:Java 运算符 | 菜鸟教程

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

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

相关文章

vue的语法模板与数据绑定的说明

vue的两大模板语法&#xff1a; 1.插值语法 2.指定语法 插值语法&#xff1a;{{}} 功能&#xff1a;用于解析标签体的内容 写法&#xff1a;{{xxx}},xxx是js表达式,且可以直接读取到data中的所有属性 指定语法&#xff1a; 功能:用于解析标签(包括:标签属性、标…

ChatGPT助力Excel数据分析:让你的工作事半功倍!

文章目录 一、ChatGPT简介二、ChatGPT在Excel数据分析中的应用1. 数据清洗2. 数据处理3. 数据分析4. 数据可视化 三、如何使用ChatGPT进行Excel数据分析1. 安装ChatGPT插件2. 输入问题或命令3. 查看结果并调整参数4. 导出结果并分享四、总结与展望 《巧用ChatGPT高效搞定Excel数…

苹果cms论坛多播放源自动采集 /采集在线影视网站/苹果CMS影视站采集器

源码介绍&#xff1a; 苹果cms论坛多播放源自动采集、采集在线影视网站&#xff0c;作为苹果CMS影视站采集器&#xff0c;它能轻松获取在线影视网站资源。 苹果 cms 论坛这是一个基于Vue和Gin实现的在线观影网站。项目采用 vite vue 作为前端技术栈, 使用 ElementPlus 作为 …

el-select 全选

<template><div class"container"><el-selectv-model"choosedList"clearablemultiplecollapse-tagsplaceholder"请选择"change"select_Change"><div style"padding: 0 20px; line-height: 34px">&l…

JVM快速入门

JVM 字节码 字节码文件的组成 字节码由五个部分组成&#xff1a;基础信息 常量池 字段 方法 属性 基础信息&#xff1a; 魔数、字节码文件对应的版本号、访问标识&#xff08;public final&#xff09;、该类的父类索引、该类实现哪些接口的索引 魔数&#xff1a;文件无法…

顶级加密混淆混淆工具测评:ipagurd

摘要 JavaScript代码安全需求日益增长&#xff0c;因此JavaScript混淆工具的使用变得广泛。本文将对专业、商业JavaScript混淆工具ipagurd进行全面评估&#xff0c;通过比较其功能、操作便捷性、免费试用、混淆效果等方面&#xff0c;帮助开发者选择适合自己项目需求的工具。 …

期货平仓日历(期货平仓日期汇总)

什么是期货平仓日历&#xff1f; 期货是一种高风险高收益的投资品种。而期货交易不同于股票等其他投资品种的交易&#xff0c;期货交易需要在一定时间内才能买卖。而期货平仓日历就是指期货交易中规定的所有合约的平仓日期汇总。 常见期货平仓日期和时间&#xff1f; 不同的…

关于EasyExcel 合并单元格方法该如何实现

在做一个业务的导出&#xff0c;目前遇到一个需求&#xff0c;如下图&#xff1a; import com.alibaba.excel.metadata.CellData; import com.alibaba.excel.metadata.Head; import com.alibaba.excel.write.handler.CellWriteHandler; import com.alibaba.excel.write.metad…

在mt5上哪里可以添加指数品种?

在MT5交易平台上&#xff0c;您可以通过以下步骤添加指数品种&#xff08;如股票指数、商品指数等&#xff09;到您的市场观察窗口中&#xff1a; Exness手机登录平台学习指南 步骤一&#xff1a;打开市场观察窗口&#xff1a; 打开MT5交易平台。 在左侧的“市场观察”窗口中&…

高集成高能效FAN21SV04MPX 单输入集成同步降压调节器技术解析

FAN21SV04MPX 是一款高效、小型、可编程频率的 4 A 集成同步降压调节器。FAN21SV04MPX 采用经过优化的互联方式将同步MOSFET和控制器/驱动器包含在一个封装中&#xff0c;使得设计人员能够使用最少的外部元件&#xff0c;在较小面积中满足高电流要求&#xff0c;从而降低成本。…

利用Spark构建房价分析与推荐系统:基于58同城数据的大数据实践

利用Spark构建房价分析与推荐系统&#xff1a;基于58同城数据的大数据实践 基于Spark的房价数据分析预测推荐系统引言技术栈功能概述项目实现1. 数据爬取与处理2. 大数据分析与可视化3. 房价预测模型4. 协同过滤推荐系统5. Web应用开发6. 数据管理与用户管理 总结与展望 基于Sp…

docker学习(十一、Redis集群存储数据方式)

文章目录 一、集群数据存储1.单机连接集群问题2.集群方式连接redis存储数据 二、 查看集群信息 docker搭建Redis集群相关知识&#xff1a; docker学习&#xff08;九、分布式存储亿级数据知识&#xff09; docker学习&#xff08;十、搭建redis集群&#xff0c;三主三从&#x…

MAC苹果笔记本电脑如何彻底清理垃圾文件软件?

苹果电脑以其流畅的操作系统和卓越的性能而备受用户喜爱。然而&#xff0c;随着时间的推移&#xff0c;系统可能会积累大量垃圾文件&#xff0c;影响性能。本文将介绍苹果电脑怎么清理垃圾文件的各种方法&#xff0c;以提升系统运行效率。 CleanMyMac X是一款专业的Mac清理软件…

【音视频 | AAC】AAC音频编码详解

&#x1f601;博客主页&#x1f601;&#xff1a;&#x1f680;https://blog.csdn.net/wkd_007&#x1f680; &#x1f911;博客内容&#x1f911;&#xff1a;&#x1f36d;嵌入式开发、Linux、C语言、C、数据结构、音视频&#x1f36d; &#x1f923;本文内容&#x1f923;&a…

re:Invent 2023技术上新|Amazon Bedrock现提供对Anthropic最新模型Claude 2.1访问权限

亚马逊云科技已在 Amazon Bedrock 中推出 Anthropic 的 Claude 2.1 基础模型&#xff08;FM&#xff09;。此前&#xff0c;Anthropic 推出了其最新模型 Claude 2.1&#xff0c;此模型为企业提供了一些关键功能&#xff0c;如业界领先的 200,000 个令牌化上下文窗口&#xff08…

vivado 约束条件效率

约束条件效率 审查约束覆盖范围编写时间约束时&#xff0c;重要的是保持约束的简单性并指定它们仅在相关网表对象上。低效的约束导致更大的运行时间和更大的内存消耗。低效的约束也可能导致设计受到不适当的约束&#xff0c;因为定时异常可能会意外地覆盖比预期更多的路径&…

谈谈微服务的Ribbon知识点

Ribbon负载均衡 Spring Cloud Ribbon是基于Netflix Ribbon实现的一套客户端负载均衡的工具。(负载均衡RestTemplate调用)&#xff0c;在服务调用过程中的负载均衡一般使用SpringCloud的Ribbon 组件实现 , Feign的底层已经自动集成了Ribbon , 使用起来非常简单。 Configuration…

[Halcon模块] Halcon13.0查询算子模块归属

&#x1f4e2;博客主页&#xff1a;https://loewen.blog.csdn.net&#x1f4e2;欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1f4dd; 如有错误敬请指正&#xff01;&#x1f4e2;本文由 丶布布原创&#xff0c;首发于 CSDN&#xff0c;转载注明出处&#x1f649;&#x1f4e2;现…

案例082:基于微信小程序的跑腿管理系统

文末获取源码 开发语言&#xff1a;Java 框架&#xff1a;SSM JDK版本&#xff1a;JDK1.8 数据库&#xff1a;mysql 5.7 开发软件&#xff1a;eclipse/myeclipse/idea Maven包&#xff1a;Maven3.5.4 小程序框架&#xff1a;uniapp 小程序开发软件&#xff1a;HBuilder X 小程序…

HarmonyOS概述

HarmonyOS概述 HarmonyOS系统架构 内核层—系统服务层—框架层—应用层 内核层&#xff1a; 内核子系统: HarmonyOS采用多内核设计&#xff0c;支持针对不同资源受限设备 &#xff0c;选用适合的OS内核&#xff0c;为上层提供基础操作系统能力。驱动子系统: 硬件驱动框架(H…