00|Java中常见错误或不清楚

news2024/11/23 14:52:57

00. 多变量声明并初始化

  • 同时声明同类型的多变量
String a = "Hello", c = "hello";
int x = 5, y = 5;

01. 变量类型

在这里插入图片描述

01.0 浮点类型

  • 默认是double类型,如果需要指定float类型,可以float f = 1.0F;

01.1 类型装换

  • 如果将大的类型转为小的类型,可以用强制转换,但是会丢失精度。

01.2 引用类型

  • 注意:类,String,接口,数组这些都属于引用类型。

02. 运算符

在这里插入图片描述

02.0 除法运算注意点

  • 1/2 = 0 分析:除法按照最大的类型显示。这里两个数都是Int类型,所以会舍弃掉小数
  • 除法是没有四舍五入的。
  • 1.0/2 = 0.5 或者 1/2.0 = 0.5

02.1 赋值运算符注意点

  • 使用赋值运算符,数据类型不会发生变化
  • eg: byte b1=10; b1 = b1+10;这个就会犯大类型转小类型的错误
  • eg: b1 += 10;

02.2 短路运算符注意点

  • 会根据第一个条件表达式的结果来判断,是否执行第二个条件表达式
  • 验证程序:(如果j变为了21,则代表后面判断被执行了)
int i=10,j=20;
boolean result = (i>10) && (++j>30);
System.out.println(result);
System.out.println(j);

03 抽象方法&&抽象类

  • 抽象方法:只声明,没有实现的方法
    • abstract 返回值类型 方法名(参数)
  • 抽象类:不完整的类
    • abstract class 类名
    • 抽象类是无法直接构造对象的,即Person p = new Person()这种对于抽象类来说是不行的。需要先继承,在构造:
class Chinese extends Person{……}
Chinese p = new Person();
  • 类中只要含抽象方法,这个类就是抽象类(要加abstract)abstract class Person{……}
  • 类是抽象类,单它的方法不一定是抽象方法。
  • final修饰的方法是不能被重写的,所以abstract和final不同时修饰

03.0 例子

abstract class Person{
	public abstract void eat();
}
class Chinese extends Person{
	public void eat(){
		Sysout.out.println("使用筷子吃饭")
	}
}

Chinese p = new Chinese();
p.eat();

04. 接口(interface)

  • 语法:interface 接口名称{规则属性,规则的行为}
  • 接口是抽象的
  • 属性是静态的,行为是抽象的
  • 接口和类是两个层面的东西
    • 接口可继承其他接口
    • 类的对象需要遵循接口,在java中,则称之为实现(implement)。即:类需要实现(多个)接口。

04.0 案例

	interface USBInterface{
	
	}
    // 下面的规则符合USBInterface,行为就是powerXXX();
    // 接口中的行为powerXXX是抽象的
	interface USBSupply extends USBInterface{
		public void powerSupply();
	}
    interface USBReceive extends USBInterface{
        public void powerReceive();
    }
    // 电脑类中有两个USB接口,接口的功能是提供电源
    class Computer implements USBSupply{
        public USBReceive usb1;
        public USBReceive usb2; 
        public void powerSupply(){
            System.out.println("电脑提供能源");
            usb1.powerReceive();
            usb2.powerReceive();
        }
    }
    // 灯
    class Light implements USBReceive{
        public void powerReceive(){
            System.out.println("电灯接受能源");
        }
    }
    // main中实现
    Computer c = new Computer();
    Light light = new Light();
    c.usb1 = light;
    c.powerSupply();

05. Bean规范

  • 类要求必须含有无参,公共的构造方法
  • 属性必须私有化,有提供getXXX(),setXXX()方法

06. 对象数组

  • 声明方式:类型[] 变量 即:String[] names
  • 数组创建:new 类型[容量] 即:new String[3]
String[] names = new String[3];
// 或者声明时,直接赋值
String[] nums = {"1","3","5"};

07. 字符串类

  • 源于java.lang.String,系统自动加载的
String name = "这是字符串";

07.0 比较

  • 完全相等(包括大小写)a.equals(b)
  • 相等(不考虑大小写)a.equalsIgnoreCase(b)
  • 比较大小:a.compareTo(b)

07.1 截取(substring)

String s = "01234  6789";
s.substring(0,3); //截取0-2,不包含3
s.substring(6);//只传一个参数,表示截取到末尾。6-9

07.2 分割(split)

String s = "01234 6789";
String[] s1 = s.split(" ");//按空格来分割字符串
System.out.println(s1.length);
for(String s2:s1){
	System.out.println(s2);
}

07.3 去掉空格(trim)

  • 这是去掉字符串首尾空格
String s = " H e l l o ,mygoodfriend ";
System.out.println(s.trim());
System.out.println("!"+s.trim()+"!");

07.4 替换(replace、replaceAll)

  • 替换所有:replace
String s = "Hello World, World Li";
System.out.println(s.replace("World","Java");
  • 按照自己的规则替换:replaceAll
    如果我想将World,Li这两个都替换成Java,就按下面操作:
String s = "Hello World, World Li";
System.out.println(s.replaceAll("World|Li","Java");

07.5 大小写转换(toLowerCase、toUpperCase)

String s = "Hello mygoodfriend";
System.out.println(s.toLowerCase());
System.out.println(s.toUpperCase());

如果只想将username的第一个u变成大写,怎么操作:

String name = "username";
String s1 = name.substring(0,1);
String s2 = name.substring(1);
System.out.println(s1.toUpperCase() + s2);

07.6 查找(charAt、indexOf)

  • charAt:通过索引找到指定位置的字符
String s = "Hello, my friends";
System.out.println(s.charAt(0));
  • indexOf:查找字符串第一次出现的下标
String s = "Hello, my friends";
System.out.println(s.indexOf("my"));
  • lastIndexOf:获取字符串最后一次出现的下标
String s = "Hello, my friends";
System.out.println(s.lastIndexOf("friends"));

07.7 判断包含(contains())

  • contains:判断是否包含指定的字符串,返回布尔类型
String s = "Hello, my friends";
System.out.println(s.contains("mygood"));
System.out.println(s.contains("friends"));

07.8 判断空(isEmpty())

String s = "Hello";
System.out.println(s.isEmpty());
String str = "";
System.out.println(str.isEmpty());

08. 字符串StringBuilder

  • 这个StringBuilder是为了优化拼接操作时应持续创建新的空间造成的利用率不高。
  • StringBuilder 构建字符串,是个类,提供了大量的字符串操作。
StringBuilder s = new StringBuilder();
for(int i=0;i<100;++i){
	s.append(i);	
}
System.out.println(s.toString());
  • 上面代码的效率就是比下面的效率高
String s = "";
for(int i=0;i<100;++i){
	s = s+i;	
}
System.out.println(s);

08.0 添加(append())

StringBuilder s = new StringBuilder();
s.append("abc");

08.1 转成字符串(toString())

StringBuilder s = new StringBuilder();
s.append("abc");
System.out.println(s.toString());

08.1 长度(length())

StringBuilder s = new StringBuilder();
s.append("abc");
System.out.println(s.length());

08.2 翻转(reverse())

StringBuilder s = new StringBuilder();
s.append("abc");
System.out.println(s.reverse());

08.3 插入(insert())

StringBuilder s = new StringBuilder();
s.append("012");
System.out.println(s.insert(1,"dr")); // 在下标为1的地方插入字符串dr

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

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

相关文章

立秋至 | 共建智慧城,秋日硕果时

一缕缕阳光洒向大地 一股股热浪迎面拂来 一声声虫鸣清脆悦耳 一片片黄叶轻声而落 一份份清凉沁入心间 一个个硕果接踵而至 跟随我们一起来回顾下 往期铭控小伙伴们 在助力建设智慧城市 做了哪些努力呢 都做了哪些项目呢 得到了多少客户的认可呢 Part 1 智慧消防 消防…

关于网络入侵检测领域使用Spark/Flink等计算框架做分布式

关于网络入侵检测领域使用Spark/Flink等计算框架做分布式 0、引言1 基于LightGBM的网络入侵检测研究2 基于互信息法的智能化运维系统入侵检测Spark实现3 基于Spark的车联网分布式组合深度学习入侵检测方法4 基于Flink的分布式在线集成学习框架研究5 基于Flink的分布式并行逻辑回…

【AHB】初识 AHB 总线

AHB 与 APB、ASB同属于 AMBA 总线架构规范&#xff0c;该总线规范由 ARM 公司提出。 目录 一、AHB 总线 二、AHB 总线组成 三、AHB 主从通信过程 一、AHB 总线 AHB&#xff08;Advanced High Performance Bus&#xff09;,意为高级高性能总线&#xff0c;能将微控制器&…

excel 下载方法封装

1.首先需要拿到后端返回的URL下载地址 2.写个下载方法 // url 接口返回的下载地址。例如&#xff1a;https://cancer-research.oss-cn-beijing.aliyuncs.com/yuance-platform-permission/校内共享数据导入模板.xlsx // name 文件名称 例如&#xff1a; 校内共享数据导入模板 /…

Pytorch安装教程:最新保姆级教程

目录 概述 重要的事情说三遍&#xff1a;不需要装cuda、不需要装cuda、不需要装cuda 1.查看自己NVIDIA版本 2.创建一个conda 环境 3.安装pytorch 本文意在帮助即将步入深入学习领域的学子 在这之前首先你需要安装好anaconda&#xff0c;不懂的可以下面这篇文章 最新Anaco…

探索人工智能 | 智能推荐系统 未来没有人比计算机更懂你

前言 智能推荐系统&#xff08;Recommendation Systems&#xff09;利用机器学习和数据挖掘技术&#xff0c;根据用户的兴趣和行为&#xff0c;提供个性化推荐的产品、内容或服务。 文章目录 前言核心机器学习为什么说机器学习是智能推荐系统的基础呢&#xff1f; 数据挖掘数据…

布置Zabbix监控

一、在 Web 页面中添加 agent 主机 1.1打开Zabbix的Web页面 2.2在 Web 页面中添加 agent 主机 二、在 Web 页面创建自定义监控项模板 2.1创建模版

3.1 Qt样式选择器

本期内容 3.1 样式选择器 3.1.1 Universal Selector (通用选择器) 3.1.2 Type Selector (类型选择器) 3.1.3 Property Selector (属性选择器) 3.1.4 Class Selector (类选择器) 3.1.5 ID Selector (ID选择器) 3.1.6 Descendant Selector (后裔选择器) 3.1.7 Chil…

励志长篇小说《周兴和》书连载之十四 守诚信身负巨债

守诚信身负巨债 天色阴霾。看样子又要下雨了吧&#xff1f; 周兴和强打精神&#xff0c;送走了来谈业务的几个客人后&#xff0c;一下就瘫倒在了藤椅上&#xff0c;一动也不想动——几个月来没日没夜的工作&#xff0c;十几天以来在高原的奔波&#xff0c;他太疲惫了&#xff…

【C与C++的相互调用方法】

C与C的相互调用方法 C与C为什么相互调用的方式不同C中调用CC中调用C致谢 C与C为什么相互调用的方式不同 C 和 C 之间的相互调用方式存在区别&#xff0c;主要是由于 C 和 C 语言本身的设计和特性不同。 函数调用和参数传递方式不同&#xff1a;C 和 C 在函数调用和参数传递方面…

【力扣每日一题】88. 合并两个有序数组 双指针 辅助数组 8.13打卡

文章目录 题目思路代码 题目 88. 合并两个有序数组 难度&#xff1a; 简单 描述&#xff1a; 给你两个按 非递减顺序 排列的整数数组 nums1 和 nums2&#xff0c;另有两个整数 m 和 n &#xff0c;分别表示 nums1 和 nums2 中的元素数目。 请你 合并 nums2 到 nums1 中&am…

【Spark学习笔记】- 1Spark和Hadoop的区别

目录标题 Spark 是什么Spark and Hadoop首先从时间节点上来看:功能上来看: Spark or Hadoop Spark 是什么 Spark 是一种基于内存的快速、通用、可扩展的大数据分析计算引擎。 Spark and Hadoop 在之前的学习中&#xff0c;Hadoop 的 MapReduce 是大家广为熟知的计算框架&…

每天一道leetcode:300. 最长递增子序列(动态规划中等)

今日份题目&#xff1a; 给你一个整数数组 nums &#xff0c;找到其中最长严格递增子序列的长度。 子序列 是由数组派生而来的序列&#xff0c;删除&#xff08;或不删除&#xff09;数组中的元素而不改变其余元素的顺序。例如&#xff0c;[3,6,2,7] 是数组 [0,3,1,6,2,2,7] …

关于虚拟机网络故障的解决

关于虚拟机网络故障的解决 ⚠申明&#xff1a; 未经许可&#xff0c;禁止以任何形式转载&#xff0c;若要引用&#xff0c;请标注链接地址。 全文共计3077字&#xff0c;阅读大概需要3分钟 &#x1f308;更多学习内容&#xff0c; 欢迎&#x1f44f;关注&#x1f440;【文末】我…

突破Poshmark成号率低难题,防封攻略大揭秘!

说到二手交易电商平台&#xff0c;这里就不得不说一下Poshmark了。Poshmark是美国最大的二手交易电商平台&#xff0c;访客量很大&#xff0c;所以平台的月均访问量也是非常高的。 Poshmark 是成立于2011 年的美国线上电商平台&#xff0c;也被称为美版“闲鱼”。平台上的产品…

无涯教程-Perl - rmdir函数

描述 此函数删除EXPR指定的目录,如果省略,则删除$_。如果目录为空,则仅删除目录。 语法 以下是此函数的简单语法- rmdir EXPRrmdir返回值 如果失败,此函数返回0,如果成功,则返回1。 例 以下是显示其基本用法的示例代码,在/tmp内创建一个目录testdir- #!/usr/bin/perl -…

《格斗之王AI》使用指南

目录 一、说明 二、步骤 1. 下载 2.配置环境 3.替换 4.测试 5.训练 一、说明 该项目是 针对B站UP主 林亦LYi 的作品 格斗之王&#xff01;AI写出来的AI竟然这么强&#xff01;的使用指南&#xff0c;目的是在帮助更多小白轻松入门&#xff0c;一起感受AI的魅力。 林亦LYi…

理论分享|拉格朗日对偶及KKT条件推导速学

目录 1 主要内容 2 问题提出 3 对偶推导 4 KKT条件 1 主要内容 在电力系统优化过程中&#xff0c;风光等分布式能源出力和负荷的不确定性&#xff08;即源荷不确定性&#xff09;形成了电力系统方向的研究热点&#xff0c;每个研究人员都试图通过自己的方法将研究推进的更深…

Kubernetes 部署DolphinScheduler 创建租户失败

创建租户 报错创建租户失败。后台日志如下 源代码跟踪 org.apache.dolphinscheduler.api.service.impl.TenantServiceImpl / if hdfs startup if (PropertyUtils.getResUploadStartupState()) {createTenantDirIfNotExists(tenantCode); }需要将 resource.storage.type 置为…

【LeetCode: 2811. 判断是否能拆分数组】

&#x1f680; 算法题 &#x1f680; &#x1f332; 算法刷题专栏 | 面试必备算法 | 面试高频算法 &#x1f340; &#x1f332; 越难的东西,越要努力坚持&#xff0c;因为它具有很高的价值&#xff0c;算法就是这样✨ &#x1f332; 作者简介&#xff1a;硕风和炜&#xff0c;…