首页 > 其他分享 >数据类型转换、运算符

数据类型转换、运算符

时间:2023-03-18 12:22:44浏览次数:46  
标签:类型转换 char Java 运算符 str 字符串 byte 数据

day02

数据类型

太简单,没啥写的,略

注意:空串""是长度为0的字符串。空串是一个Java对象,有自己的串长度(0)和内容(空)。不过,String变量还可以存放一个特殊的值,名为null,这表示目前没有任何对象与该变量关联。

类型转换

自动类型转换:小范围类型的变量——>大范围的变量

数据范围小的变量可以直接赋值给数据范围大的变量(byte、short 和char在表达式中是直接转换成int类型参与运算的)

byte→short→int→long→float→double

char

强制类型转换:大范围类型的变量——>小范围的变量

可能造成数据失真

注意:byte a = 3;

byte b = 4;

byte c = a+b;//会报错,变量的值不确定,有可能a+b的值大于byte的最大值

运算符

各种运算符:

运算符优先级:&&的优先级比||的高,所以表达式 a&&b||c 等价于(a&&b)||c ;

+=是右结合运算符,所以表达式a+=b+=c等价于a+=(b+=c),也就是将b+=c的结果(加上c之后的b)加到a上。;

“+”运算符可以拼接字符串

Java语言允许使用+号连接(拼接)两个字符串。

当将一个字符串与一个非字符串的值进行拼接时,后者被转换成字符串

Java里String字符串实现原理

C/C++里面的String是字符型数组,类似于:char str[] = "Hello";

但Java不是,Java字符串大致类似于char*指针:char* str = "Hello";

当采用另一个字符串替换str的时候,Java代码内部大致进行下列操作:

char* temp = malloc(6);

strncpy(temp,str,3)

strncpy(temp,"P!",3)

str = temp;

在java中我们只需要一句代码:str = "Help! "即可实现上述操作。

字符串替换后原始字符串内存的释放:

这样做会不会产生内存遗漏呢?毕竟,原始字符串放置在堆中。十分幸运,Java将自动地进行垃圾回收。如果一块内存不再使用了,系统最终会将其回收。

检测字符串是否相等

可以使用equals方法检测两个字符串是否相等。

一定不要使用==运算符检测两个字符串是否相等!这个运算符只能够确定两个字符串是否放置在同一个位置上。当然,如果字符串放置在同一个位置上,它们必然相等。但是,完全有可能将内容相同的多个字符串的拷贝放置在不同的位置上。

如果虚拟机始终将相同的字符串共享,就可以使用== 运算符检测是否相等。但实际上只有字符串常量是共享的,而+或substring等操作产生的结果并不是共享的。因此,千万不要使用== 运算符测试字符串的相等性,以免在程序中出现糟糕的bug。从表面上看,这种bug很像随机产生的间歇性错误。

相同的字符串在内存常量池中只有一份,字符串常量是共享的

通过“ ”定义字符串内存在常量池

如:

String s1= “abc”;

String s2 ="abc";

s1和s2指向同一个地址。

标签:类型转换,char,Java,运算符,str,字符串,byte,数据
From: https://www.cnblogs.com/xkh-blogs/p/17229711.html

相关文章

  • Hive数据倾斜及小文件处理
    1、数据倾斜原因数据倾斜主要表现在,map/reduce程序执行时,reduce节点大部分执行完毕,但是有一个或者几个reduce节点运行很慢,导致整个程序的处理时间很长。这是因为某一......
  • 关于float和double类型数据在单片机内存中如何存储和转换
    关于float和double类型数据在单片机内存中如何存储和转换1、单精度浮点型float,双精度浮点型double数据在内存中的存储模型(1)下图为单精度浮点型数据float的存储模型,符号位......
  • flask-数据库
    mysql安装:centos服务器安装mariadbyum-ymariadb-serverwin开发机直接安装绿色免安装版mysql.搭配HeidiSQL,如果需要远程连接服务器上数据库用xshell驱动安装f......
  • 【每日进步一点点系列】七道精选 数据库 实习面试题
    目录​​前言​​​​1.InnoDB和MyISAM的区别​​​​2.数据库的索引是什么结构,为什么不用哈希表?​​​​3.聚簇索引和非聚簇索引​​​​4.索引怎么实现的B+树,为什么选这......
  • java基础_基本数据类型
    介绍鄙人才疏学浅,如有谬论,敬请指教。计算机储存容量单位讲解计算机储存容量基本单位就是字节(Byte),而字节下面还有一个比特>(bit),对应关系是一个字节=八个比特,比特(bit......
  • django 迁移数据报错:django.db.utils.OperationalError: (1050, "Table 'xxx' alread
    方法1:登录数据库删除掉django创建数据表的所有数据内容、或者直接删掉所有表格。DROPTABLEtable_name;因为MySQL中设置了foreignkey关联,造成无法更新或删除数据。......
  • 什么是数据库连接池
    每次数据库连接都要断开重连浪费时间,性能【底层需要tcp连接】  资源复用;提升系统响应速度;避免数据库连接遗漏;【长时间不操作会强制断开】  使用: ......
  • 【视频】随机波动率SV模型原理和Python对标普SP500股票指数预测|数据分享|附代码数据
    全文链接:http://tecdat.cn/?p=22546 最近我们被客户要求撰写关于随机波动率SV模型的研究报告,包括一些图形和统计输出。什么是随机波动率?随机波动率(SV)是指资产价格的......
  • R语言k-Shape时间序列聚类方法对股票价格时间序列聚类|附代码数据
    原文链接:http://tecdat.cn/?p=3726最近我们被客户要求撰写关于k-Shape时间序列聚类的研究报告,包括一些图形和统计输出。本文我们将使用k-Shape时间序列聚类方法检查与......
  • java运算符
    一表达式表达式由运算符和操作数组成如:5num1,num1+num2,sum=num1+num2二运算符1.算术运算符算术运算符主要用于进行基本的算术运算,如加法,减法,乘......