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

这篇具有很好参考价值的文章主要介绍了00|Java中常见错误或不清楚。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

00. 多变量声明并初始化

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

01. 变量类型

00|Java中常见错误或不清楚,java,开发语言,笔记

01.0 浮点类型
  • 默认是double类型,如果需要指定float类型,可以float f = 1.0F;
01.1 类型装换
  • 如果将大的类型转为小的类型,可以用强制转换,但是会丢失精度。
01.2 引用类型
  • 注意:类,String,接口,数组这些都属于引用类型。

02. 运算符

00|Java中常见错误或不清楚,java,开发语言,笔记

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变成大写,怎么操作:文章来源地址https://www.toymoban.com/news/detail-648526.html

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

到了这里,关于00|Java中常见错误或不清楚的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Java empty、null、blank 还傻傻分不清楚?

    写代码时候经常遇到判empty、null和blank的情况。这些概念看起来很相似,但是它们有着不同的含义和用法。本文将介绍这三个概念的区别,并分析具体场景该如何做判断。 empty是指一个字符串长度为0/Java集合对象不存在元素,可以使用isempty()方法来判断一个字符串是否为空。

    2024年02月06日
    浏览(57)
  • Java 开发中常见的异常有哪些?

    1、空指针异常(NullPointException):当对象不存在,却又去调用对象的属性或方法时,就会出现该异常 2、数组越界异常(ArrayIndexOutOfBoundsException):当数组只存在5个元素,他们所对应的的下标即为0-4,如果访问数组下标为5的元素时,就会提示该异常,原因是该位置元素不存

    2024年02月04日
    浏览(40)
  • java开发中常见的String对象

    String对象加载场内存方式有两种,一种是直接使用“”号创建的加载内存时会会把该字符串直接加载到字符常量中去,并且后文中出现相同使用“”号定义的常量时不会再在内存中创建直接使用第一次创建的字符串,另一种直接使用构造器创建的会创建出一个新的字符串,

    2024年02月11日
    浏览(39)
  • Java Stream常见用法汇总,开发效率大幅提升

    本文已经收录到Github仓库,该仓库包含 计算机基础、Java基础、多线程、JVM、数据库、Redis、Spring、Mybatis、SpringMVC、SpringBoot、分布式、微服务、设计模式、架构、校招社招分享 等核心知识点,欢迎star~ Github地址 如果访问不了Github,可以访问gitee地址。 gitee地址 Java8 新增的

    2023年04月14日
    浏览(62)
  • JAVA开发(记一次504 gateway timeout错误排查过程)

    一、问题与背景: 最近在发布一个web项目,在测试环境都是可以的,发布到生产环境通过IP访问也是可以的,但是通过域名访问就出现504 gateway timeout。通过postman去测试接口也是一样。ip和端口都可以通,域名却不行,百思不得其解。通过一顿百度搜索,解析说通过nginx配置文

    2024年02月11日
    浏览(42)
  • Java开发中的常见问题和解决方法:如何解决常见的性能和bug问题

      在Java开发中,我们经常会面临各种各样的问题,包括性能问题和Bug。这些问题可能会导致应用程序的运行变慢、不稳定甚至崩溃。本文将介绍一些常见的Java开发问题,并提供解决这些问题的方法和技巧,帮助开发人员更好地处理性能和Bug问题。 性能问题是Java开发中最常见

    2024年02月09日
    浏览(52)
  • 详解各种dedeCMS织梦后台登陆验证码错误或不显示解决方法大全

    常见的就是验证码输入明明正确但却提示不正确,或者压根不显示。说一下碰到这种情况的几种原因: ①dede版本程序升级操作不正确造成验证码提示不正确 ②更好空间新的空间里pho.ini里gd库配置问题 ③网站空间满了 ④专对5.7版本转移data目录引起的(此种请查看:如何将

    2024年02月02日
    浏览(42)
  • 简单对比Java、Python、Go、Rust等常见语言计算斐波拉契数的性能

    最近简单学了下Rust,以我这种菜鸟水平,没感受到什么安全、性能什么方面的优势,只觉得概念太多,编译各种报错。暂时也写不出来什么玩法,索性对比下各种学过的语言的性能。部分语言很早之前学过,很久不用就忘了,所以是用GPT写的。但运行逻辑很简单,所以应该没

    2024年03月16日
    浏览(49)
  • java 从零开始手写 RPC (00) 概览 overview

    rpc 是基于 netty 实现的 java rpc 框架,类似于 dubbo。 主要用于个人学习,由渐入深,理解 rpc 的底层实现原理。 基于 netty4 的客户端调用服务端 p2p 调用 serial 序列化支持 timeout 超时处理 register center 注册中心 load balance 负载均衡 callType 支持 oneway sync 等调用方式 fail 支持 failOve

    2024年03月08日
    浏览(55)
  • c语言复习:常见函数与错误

    log(a) / log10(a) exp(a) sqrt(a) round(a) // (int)(a+0.5) ceil / floor fabs() strcat strcpy / strncpy (str1,str2,n) strcmp ==返回为 0 ;/ strncmp strlen 不包括 ’\\0’ strlwr / strupr strstr fopen(“FILE Path”,“w”) / w, r, a, rb, wb, ab, (+) fclose fwrite(ptr,size,count,stream) fread(ptr,size,count,stream) 执行条件为真后不执行break会继

    2024年01月21日
    浏览(33)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包