我的Java之路——数据类型

字符类型

char占2两个字节

布尔类型

占1位其值只有false和true。

八大基本数据类型

②引用类型 (reference)


引用类型包括:

1.类。

2.接口。

3.数组。


数据类型扩展

=======

1.整数扩展:进制


二进制0b,八进制0,十进制,十六进制0x。


2.浮点数扩展


注:float是离散,有限,舍入误差,大约,接近不等于

例:

我们可以看到的是0.1不等于0.1,c=c+1。

这个就和float有关了,即在上面强调float的特点。最后也总结出来一个道理:

最好完全避免使用浮点数进行比较!!!


3.字符拓展


所有的字符本质都是数字!!!

我们可以举例看一下:

把字符a强制转换为整数型,对应的数字是 97。这个是为什么呢?

答:在底层有一个Unicode编码:表(a:97,b:98…)每一个字符都对应有相应的数字!!!


4.转义字符


| 样式 | 含义 |

| — | — |

| \123 | 1~3位八进制数据所表示的字符,如\256 |

| \uF890 | 4位十六进制数据所表示的字符,如\u0014 |

| ’ | 单引号字符 |

| \ | 反斜杠字符 |

| \t | 水平制表符 |

| \v | 垂直制表符 |

| \r | 回车 |

| \n | 换行符 |

| \b | 退格 |

| \f | 换页 |

| \a | 响铃 |


类型转换

====

低————————————————————————————>高

byte,short,char ——>int ——>long——>float——>double

注:小数的优先级大于整数!!!

例:

int i = 128;

byte b = (byte)i;

//这个转换时有溢出

输出为-127(因为有溢出)

强制转换格式:(类型)变量名

强制转换是由高到低,自动转换是由低到高。

注意一些转换的情况!!!

不能对布尔值进行转换。
不能把类型转化为不相干的类型。
在把高容量转换到低容量的时候,强制转换。
转换的时候可能存在内存溢出或者精度问题。

JDK新特性


这个是我们补充的一个地方,下面的例子是可以用到的。

首先先介绍一下JDK的新特性:数字之间是可以用下划线分隔的,这样可以更清楚的分别位数!!!

int money = 1000000000;

int money1 = 10_0000_0000;

//两者是输出相同的

解决一些溢出问题


首先我们来看下面这段代码:

int money1 = 10_0000_0000;

int years = 20;

int total = money1 *years;

System.out.println(total);

我们来猜一下这个结果是200000000000还是什么呢?

我们来看结果!!!

可能有基础的小伙伴已经直到这个是为啥了,就是因为溢出问题 。

我么在思考一下,如果我们在total前面加个long呢???

是不是这样他就不会在溢出了???

我们来试试:

int money1 = 10_0000_0000;

int years = 20;

long total = money1 *years;

System.out.println(total);

我们呢看一下结果:

还是溢出!!!这是为什么呢?

其实在运算前money和years就是默认为int类型,在转换前就已经出现溢出问题了!

那我们怎么来解决这个溢出呢?
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

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

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

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

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

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

img

面试结束复盘查漏补缺

每次面试都是检验自己知识与技术实力的一次机会,面试结束后建议大家及时总结复盘,查漏补缺,然后有针对性地进行学习,既能提高下一场面试的成功概率,还能增加自己的技术知识栈储备,可谓是一举两得。

以下最新总结的阿里P6资深Java必考题范围和答案,包含最全MySQL、Redis、Java并发编程等等面试题和答案,用于参考~

重要的事说三遍,关注+关注+关注!

历经30天,说说我的支付宝4面+美团4面+拼多多四面,侥幸全获Offer

image.png

更多笔记分享

历经30天,说说我的支付宝4面+美团4面+拼多多四面,侥幸全获Offer

《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!
增加自己的技术知识栈储备,可谓是一举两得。

以下最新总结的阿里P6资深Java必考题范围和答案,包含最全MySQL、Redis、Java并发编程等等面试题和答案,用于参考~

重要的事说三遍,关注+关注+关注!

[外链图片转存中…(img-odtSXYP3-1713692305861)]

[外链图片转存中…(img-g1CZw7qG-1713692305861)]

更多笔记分享

[外链图片转存中…(img-VS9hQHeb-1713692305861)]

《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!

  • 23
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,下面是用Java顺序表实现简易通讯录的代码: 首先,在Java中需要定义一个类来表示通讯录中的每一个联系人,这个类包含联系人的姓名和电话号码两个属性: ```java public class Contact { private String name; private String phoneNumber; public Contact(String name, String phoneNumber) { this.name = name; this.phoneNumber = phoneNumber; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getPhoneNumber() { return phoneNumber; } public void setPhoneNumber(String phoneNumber) { this.phoneNumber = phoneNumber; } } ``` 接下来,我们用一个顺序表来存储所有的联系人信息: ```java public class ContactList { private Contact[] contacts; private int size; public ContactList(int capacity) { contacts = new Contact[capacity]; size = 0; } public boolean add(Contact contact) { if (size >= contacts.length) { return false; } contacts[size++] = contact; return true; } public boolean remove(int index) { if (index < 0 || index >= size) { return false; } for (int i = index; i < size - 1; i++) { contacts[i] = contacts[i + 1]; } contacts[--size] = null; return true; } public Contact get(int index) { if (index < 0 || index >= size) { return null; } return contacts[index]; } public int size() { return size; } } ``` 在这个类中,我们定义了一个Contact类型的数组来存储所有的联系人信息,同时还有一个size变量来记录当前已经存储的联系人数目。在这个类中,我们提供了以下几个方法: - add(Contact contact):向通讯录中添加一个联系人,如果当前已经存储的联系人数目已经达到了数组的容量,则添加失败。 - remove(int index):根据给定的下标从通讯录中删除一个联系人,如果给定的下标越界,则删除失败。 - get(int index):根据给定的下标获取通讯录中指定位置的联系人,如果给定的下标越界,则返回null。 - size():获取当前通讯录中已经存储的联系人数目。 我们可以使用这个类来实现一个简单的通讯录应用程序,这个程序可以让用户输入联系人的姓名和电话号码,然后将其添加到通讯录中,也可以让用户删除指定位置的联系人,还可以列出所有已经存储的联系人信息。下面是这个应用程序的代码: ```java import java.util.Scanner; public class ContactApp { public static void main(String[] args) { ContactList contactList = new ContactList(10); Scanner scanner = new Scanner(System.in); while (true) { System.out.println("请选择操作:"); System.out.println("1. 添加联系人"); System.out.println("2. 删除联系人"); System.out.println("3. 列出所有联系人"); System.out.println("4. 退出"); int choice = scanner.nextInt(); scanner.nextLine(); switch (choice) { case 1: System.out.println("请输入联系人姓名:"); String name = scanner.nextLine(); System.out.println("请输入联系人电话号码:"); String phoneNumber = scanner.nextLine(); Contact contact = new Contact(name, phoneNumber); if (contactList.add(contact)) { System.out.println("添加成功!"); } else { System.out.println("添加失败,通讯录已满!"); } break; case 2: System.out.println("请输入要删除联系人的下标:"); int index = scanner.nextInt(); if (contactList.remove(index)) { System.out.println("删除成功!"); } else { System.out.println("删除失败,下标越界!"); } break; case 3: System.out.println("所有联系人信息:"); for (int i = 0; i < contactList.size(); i++) { Contact c = contactList.get(i); System.out.println((i + 1) + ". " + c.getName() + " " + c.getPhoneNumber()); } break; case 4: System.out.println("谢谢使用!"); return; default: System.out.println("输入错误,请重新输入!"); break; } } } } ``` 这个应用程序首先创建了一个ContactList对象来存储所有的联系人信息。然后,它通过一个无限循环来等待用户输入选择,并根据用户的选择执行相应的操作。当用户选择退出程序时,程序会结束。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值