【Java 核心技术卷 I】(2)运算符、字符串、输入输出

  1. 两个数值进行计算时,如果都是 int 类型一下的就都要先转换为 int 类型,其他的都要先转换为这个数中数值范围更大的那个类型。
  1. 强制类型转换

强制类型转换有两种方法

  1. (要转换类型)+ 待转换变量名,如
double x=9.997;
int ly=(int)x;
ly 的结果是9,这种转换通过截断小数部分将浮点值转换为整型。如果你想对浮点数进行舍入运算,就要用到下面的方法。
  1. Math.round 方法,如
double x=9.997;
int ly=(int)Math.round(x);
ly 的结果是10,但是为什么前面还是加了(int)呢?因为 round 方法返回的结果为 long 类型,防止信息丢失的可能,需要强制转换

注意:如果强制转换的类型的值超过了该类型的范围,则结果就会被截断为完全不同的值

  1. 关系运算符

和 C 语言一样,&& 表示逻辑“与”,|| 表示逻辑“或”。但是要注意它们会按照“短路”方法求值,如

exp1 && exp2

只要 exp1 是假,那么第二个表达式则不进行计算。再如

exp1 || exp2

只要 exp1 是真,那么第二个表达式则不进行计算。

  1. 位运算符
  1. 和 C 语言一样,java 有 & 和 | 和 ^ 和 ~。但是位运算符与关系运算符的 && 和 ||不同的是,它们不采用“短路”方法求值,即计算结果之前两个数都要计算
  1. 应用在布尔值上时,& 和 | 和 ^ 运算符也会得到一个布尔值,而 ~ 会报错
  1. 与 C 语言不一样的是,Java 还有 >>> 位移运算符,该运算符会用 0 填充高位,并且 >> 位移运算符明确用符号位填充高位不同

2. 字符串

==========================================================================

Java 字符串就是 Unicode 字符串序列。如,串 “java\u” 就是由5个 Unicode 字符 j、a v、a 和 TM 组成的。

接下来稍微介绍一下 String 类的一些方法

  1. 提取字串

String 类的 substring 方法可以从一个较大的字符串提取出一个字串,如

String str = “helloworld”;

String s = str.substring(0,5);

// s 就会为 “hello”

在 substring 中,是从0开始计数的,并且第二个参数是不想复制的第一个位置(就是左闭右开啦)

  1. 拼接
  • Java 语言使用 + 号连接两个字符串,如
String str1 = "hello";
String str2 = "world";
String s = str1 + str2;
// 上述代码将 "helloworld" 赋值给变量 message
  • 将一个字符串与一个非字符串的值进行拼接时,后者被转换成字符串,如
int age = 18;
String str = "i am";
String s = str + age;
只不过如果有几个非字符串的值相加再加一个字符串,就先进行运算,再进行拼接
  • 可以使用静态 join 方法,把多个字符串放在一起,用一个界定符分隔开,如
String all = String.join(" / ","s","M","L","XL");
// 结果 all 为 "S / M / L / XL"
  1. 不可变字符串

由于 String 类没有提供用于修改字符串的方法,所以在 Java 文档中将 String 类对象称为不可变字符串。而如果要将一个字符修改时,Java 中可以这样做

String str = “helloworld”;

str = str.substring(0,5) + “java”;

// 这样就可以将 “helloworld” 修改成 “hellojava” 了

并且不可变字符串有一个优点:编译器可以让字符串共享

  1. 检测字符串是否相等

使用 equals 方法检测两个字符串是否相等,如

s.equals(t);

// 如果字符串 s 和 t 相等,则返回 true,否则返回 false

如果要不区分大小写来检测字符串是否相等,可以使用 equalsIgnoreCase,如

“Hello”.equalsIgnoreCase(“hello”);

注意:不要使用 == 检测两个字符是否相等,因为这个运算符只能够确定两个字符串是否放置在同一个位置上。(如果字符串放在同一位置则肯定相等,但是完全有可能将内容相同的多个字符串的拷贝放置在不同的位置上)

也可以使用 compareTo 方法 类似于 C 语言的 strcmp 进行比较,如

if(s.compareTo(t)==0) …

  1. 空串 与 Null 串
  1. 空串 “” 是长度为0的字符串。可以使用一下代码检查一个字符串是为空,如

if(str.length() == 0)

// 或

if(str.equals(“”))

空串是一个 Java 对象,有自己的串长度(0)和内容(空)

  1. Null 串是 String 变量中存放一个特殊值名为 null 的串,这表示目前没有任何对象与该变量关联。可以使用一下代码检查一个字符串是为 null,如

if(str == null)

  1. 如果要检测一个字符串既不是 null 串也不是空串,则使用如下代码

if(str != null && str.length() != 0)

但要注意要检查 str 不为 null。

  1. 构建字符串

如果需要用许多小段的字符串构建一个字符串,可以用下面代码

// 首先构建一个空的字符串构建器

StringBuilder builder = new StringBuilder();

//当每次添加一部分内容时就调用 append 方法

builder.append(str); // str 为在原字符后面新增的字符串部分

//最后当构建字符串时就调用 toString 方法,就可以得到一个 String 对象

String s = builder.toString();

注意

Java 没有内置的字符串类型,而是在标准 Java 类库中提供了一个预定义类,叫做String。

3. 输入输出

===========================================================================

  1. 读取输入

想要通过控制台进行输入

  1. 构造一个 Scanner 对象,并与”标准输入流“ System.in 关联
Scanner in = new Scanner(System.in);
  1. 接下来就可以使用 Scanner 类的各种方法实现输入操作,如
int a = in.nextInt();			//读入一个整数
double b = in.nextDouble();		//读入一个浮点数
boolean c = in.nextBoolean();	//读入一个布尔值
String s = in.next();			//读入一个字符串,遇到空格结束
String str = in.nextLine();		//读入一行字符串
  1. 最后在程序的最开始添加一行
import java.util.*;
因为 Scanner 类定义在 java.util 包中
  1. 格式化输出

在 Java 中,格式化输出类似于 C 语言的 printf,如

int a = 10;

System.out.printf(“%d\n”,a);

但是与 C 语言肯定也是有不同的,但基本用法就是上面的形式,使用时遇到不熟悉的直接翻阅书籍查找就好
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)

img

总结

对于面试,一定要有良好的心态,这位小伙伴面试美团的时候没有被前面阿里的面试影响到,发挥也很正常,也就能顺利拿下美团的offer。
小编还整理了大厂java程序员面试涉及到的绝大部分面试题及答案,希望能帮助到大家,

在这里插入图片描述

在这里插入图片描述

最后感谢大家的支持,希望小编整理的资料能够帮助到大家!也祝愿大家都能够升职加薪!
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!
备注Java获取)**

img

总结

对于面试,一定要有良好的心态,这位小伙伴面试美团的时候没有被前面阿里的面试影响到,发挥也很正常,也就能顺利拿下美团的offer。
小编还整理了大厂java程序员面试涉及到的绝大部分面试题及答案,希望能帮助到大家,

[外链图片转存中…(img-XikprH5s-1713524842741)]

[外链图片转存中…(img-aIeWaaiY-1713524842743)]

最后感谢大家的支持,希望小编整理的资料能够帮助到大家!也祝愿大家都能够升职加薪!
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!

  • 17
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值