java回顾
数据类型数据类型占用字节位数范围byte1字节8位-128 ~ 127short2字节16位-32768 ~ 32767int4字节32位约 ±21亿long8字节64位很大float4字节32位小数double8字节64位更高精度小数char2字节16位0 ~ 65535boolean理论上1位但Java规范不规定大小通常按1字节处理true/false算术运算符隐式转换取值范围byteshortint longfloatdouble什么时候转换数据类型不一样不能进行计算需要转成一样的才能计算转换规则1取值范围小的和取值范围大的进行计算小的会先提升为大的再进行计算转换规则2byte short char 三种类型的数据在运算的时候都会直接提升为int然后在进行计算强制转换如果把一个取值范围大的数值赋值给取值范围小的变量是不允许直接复制的如果一定要转得加入强制转换格式目标数据类型 变量名目标数据类型被强转的数据构造方法创建对象的时候虚拟机会自动调用构造方法作用是给成员变量进行初始化的标准的JavaBean类名需要见明知意提供至少两个构造方法无参加全参成员方法提供给每一个成员变更对应的set和get方法如果还有其他行为也得加上一个对象的内存图this的内存原理作用区分局部变量和成员变量本质所在方法调用这的地址值创建String对象的两种方式1、 直接赋值省内存2、new 构造方法new方式获取一个空字符串对象空参构造传递一个字符串根据传递的内容在创建一个新的字符串对象传递一个字符数组根据字符数组内容在创建一个新的字符串对象传递一个字节数组根据字节数组内容在创建一个新的字符串对象当使用双引号直接赋值时系统会检查该字符串在串中是否存在不存在创建新的存在复用字符串的比较基本数据类型比较的是数据值引用数据类型比较的是地址值boolean equals方法要比较的字符串 完全一样的才true否则false booleanequalslgnoreCasse(要比较的字符串)忽略大小写的比较字符串原理字符串拼接的底层原理如果没有变量参与都是字符串直接相加编译之后就是拼接之后的结果会复用穿刺中的字符串如果有变量参与每一行拼接的代码都会在内存中创建新的字符串浪费内存StringBuilder提高效率原理图所有拼接的内容都会往SpringBuilder中放不会创建无用的空间节约内存StringBuilder源码分析集合迭代器迭代器在遍历集合的时候是不依赖索引的迭代器需要掌握的三个方法迭代器的细节如果当前位置没有元素还要强行获取汇报NoSuchElementException迭代器遍历完毕指针不会复位循环中只能用一次next方法迭代器遍历时不能用集合的方法进行增加或者删除List集合的遍历迭代器遍历 在遍历中删除元素列表迭代器 在遍历中添加元素增强for遍历 仅仅遍历Lambda表达式 仅仅遍历普通for 如果遍历的时候想操作索引数据结构是计算机底层存储、组织数据的方式是指数据之间是以什么方式排列在一起的常见的数据结构有栈、队列、数组、链表、二叉树、二叉查找树、平衡二叉树、红黑树栈特点后进先出先进后出。应用栈内存中方法的运行时候进栈执行完毕出栈从上往下一次出栈队列特点先进先出后进后出数据从后端进入从前端出去的数组查询速度快查询数据通过地址之和索引定位删除效率低要将原始数据删除同时后面每个数据前移添加效率低添加位置后的每个数据后移再添加元素链表链表中的节点是独立的对象在内存中是不连续的每个节点包含数据之和下一个节点的地址创建一个链表有一个头节点查询速度慢无论查询哪个数据都要从头开始链表增删快只需要修改对应节点的地址值就行动的很少集合集合(Collection)│├── 单列集合 Collection│ ││ ├── List│ │ ├── ArrayList│ │ └── LinkedList│ ││ └── Set│ ├── HashSet│ └── TreeSet│└── 双列集合 Map│├── HashMap├── LinkedHashMap├── TreeMap└── ConcurrentHashMapArrayList底层原理1利用空参创建的集合在底层创建一个默认长度为0的数组2在添加第一个元素时底层会创建一个新的长度为10的数组3、存满时会扩容1.5倍4、如果一次添加多个元素1.5倍还放不下则创建数组的长素以实际为准ArrayList底层原理是通过数组Object[]实现的,它内部维护了一个Object类型的数组element Date用来存储集合中的元素(同时通过size变量记录当前集合中实际存储元素的个数。)如果有则直接放入size位置如果容量不足则进行1.5倍扩容创建新数组并复制旧数据。因此ArrayList查询效率高因为底层是数组可以通过下标进行快速访问单数中间插入和删除效率较低因为需要移动元素比如执行ArrayListStringlistnewArrayList();底层elementData[null,null,null,null,null]size0当执行list.add(Java);调用ArrayList的add方法publicbooleanadd(Ee){add(e,elementData,size);returntrue;}先把要添加的元素e底层数组elementDate,当前元素数量size传进去 进入privatevoidadd(Ee,Object[]elementData,ints)e:要添加的数据 elementDate应用场景普通业务 例如查询多的修改少单线程CopyOnWriteArrayList是线程安全版本的ArrayList采用的是复制机制在修改数据时复制一个新的数组然后完成修改最后替换原数组引用。它适合多线程环境下读多写少的场景因为读操作无需加锁性能高但是写操作需要复制数组会消耗更多内存LinkedList集合底层数据结构是双链表查询慢增删快但是如果操作的是首位元素速度也是极快的。LinkedList本身多了很直接操作首尾元素的特有APIHashMap与ConcurrentHashMap双列集合的特点双列集合一次需要存一对数据分别为键和值键不能重复值可以重复键和值是一一对应的每一个键只能找到自己对应的值-键值成为”键值对对象“ 在Java中叫做“Entry对象”特点由键决定的无序、不重复、无索引底层原理是哈希表结构核心HashMap数组链表/红黑树哈希算法核心目的通过key快速找到value双列集合的遍历方式1、键找值MapString,StringmapnewHashMap();map.put(name,lihua);map.put(name,liii);map.put(age,18);map.put(sex,男);System.out.println(map.get(name));System.out.println(map.get(age));Stringresultmap.remove(name);System.out.println(result);System.out.println(map);SetStringsetmap.keySet();for(Stringkey:set){System.out.println(key);Stringvaluemap.get(key);System.out.println(keyvalue);}IteratorStringiteratormap.keySet().iterator();while(iterator.hasNext()){Stringkeyiterator.next();Stringvaluemap.get(key);System.out.println(keyvalue);}System.out.println(--------------);set.forEach((s)-System.out.println(s));CollectionStringcollectionmap.values();IteratorStringiterator2collection.iterator();while(iterator2.hasNext()){Stringvalueiterator2.next();System.out.println(value);}System.out.println(--------------);collection.forEach((s)-System.out.println(s));2、 键值对SetMap.EntryString,Stringentriesmap.entrySet();for(Map.EntryString,Stringentry:entries){Stringkeyentry.getKey();Stringvalueentry.getValue();System.out.println(keyvalue);}System.out.println(--------------);entries.forEach((s)-System.out.println(s));System.out.println(--------------);IteratorMap.EntryString,Stringiteratormap.entrySet().iterator();while(iterator.hasNext()){Map.EntryString,Stringentryiterator.next();Stringkeyentry.getKey();Stringvalueentry.getValue();System.out.println(keyvalue);}3、Lambda表达式MapString,Stringmap2newHashMap();map2.put(name,lihua);map2.put(age,18);map2.put(sex,男);map2.forEach(newBiConsumerString,String(){Overridepublicvoidaccept(Stringkey,Stringvalue){System.out.println(keyvalue);}});System.out.println(--------------);map2.forEach((key,value)-System.out.println(keyvalue));}泛型是JDK5引入的特性在编译阶段约束操作的数据类型并进行检查泛型的格式数据类型。泛型只能是引用数据类型好处统一数据类型把运行时期的问题提前到编译期间避免强制类型转换可能出现的异常因为在编译阶段类型就能确定下来泛型类泛型方法方法中那个形参不确定时1、可以使用类名后面定义的泛型2、在方法上申明定义自己的泛型泛型接口两种使用方式1、实现类给出具体的类型2、实现类延续泛型创建实现类对象时再确定类型使用场景定义类、方法、接口的时候如果类型不确定就可以定义泛型如果类型不确定但是能知道哪个是继承体系中的可以使用泛型的通配符异常编译时异常用于提醒程序员写错运行时异常是代码写错了已经异常处理异常中的常见方法Jvm默认的处理方式把异常的名称异常原因及异常出现的位置等信息输出在控制台程序停止执行下面代码不会再执行自己处理捕获异常try{可能出现异常的代码;}catch异常类型 变量名{异常的处理代码;}如果try中没有到问题怎么执行 会把try里面的代码执行完毕不会执行catch里面的代码 如果try里面遇到多个问题怎么执行 会写多个catch与之对应父类异常写在下面 如果try中遇到的问题没有被捕获怎么执行 相当于try...catch白写了当前一场交给虚拟机处理 如果try中遇到问题那么try下面的其他代码还会执行吗 不会执行了try中遇到问题直接跳到对应的catch如果没有对应的catch与之匹配则会交给虚拟机处理抛出异常throws写在方法定义出表示声明一个异常告诉调用者使用本方法可能会有哪些异常编译时异常必须要运行时异常可以不写throw写在方法内借助方法手动抛出异常对象交给调用者方法中下面的代码不会再执行了自定义异常定义异常类写继承关系编译或者运行异常空参构造带参构造例如**目的**就是为了让控制台的报错信息更加见名知意publicclassAgeFormatExceptionextendsRuntimeException{publicAgeFormatException(){}publicAgeFormatException(Stringmessage){super(message);}}publicstaticvoidmain(String[]args){ScannerscnewScanner(System.in);girlFriend gfnewgirlFriend();while(true){try{System.out.println(请输入姓名);Stringnamesc.nextLine();gf.setName(name);System.out.println(请输入年龄);Stringagesc.nextLine();intageIntInteger.parseInt(age);gf.setAge(ageInt);break;}catch(NumberFormatExceptione){System.out.println(年龄必须是数字);}catch(NameFormatExceptione){e.printStackTrace();}catch(ArithmeticExceptione){e.printStackTrace();}}System.out.println(gf);}线程状态

相关新闻

FastAPI 进阶三部曲:中间件、依赖注入与 ORM 实战

FastAPI 进阶三部曲:中间件、依赖注入与 ORM 实战

一、引言FastAPI 作为当前 Python 领域最炙手可热的异步 Web 框架,凭借其高性能、自动生成 API 文档以及对异步的原生支持,赢得了大量开发者的青睐。然而,仅仅掌握路由和请求响应的基础用法,远不足以构建一个健壮的企业级应用。中…

2026/8/16 21:01:04 阅读更多 →
梁文锋20个技术关键词解析:云原生、微服务与AI编程实践指南

梁文锋20个技术关键词解析:云原生、微服务与AI编程实践指南

最近在技术圈里,一个现象级的分享正在被频繁讨论:梁文锋长达四小时的深度分享,被提炼成了20个关键词。这不仅仅是简单的会议记录,而是对当前技术发展趋势的一次系统性梳理。如果你正在思考下一步技术方向、团队建设或产品架构&…

2026/8/17 13:36:59 阅读更多 →
深度学习基础 Week5 分类算法基础知识

深度学习基础 Week5 分类算法基础知识

目录 摘要 Abstract 1学习概述 2机器学习分类任务简介 2.1核心定义 2.2分类任务核心类型 2.3分类模型核心分支 3分类与回归的核心区别 3.1核心本质差异 3.2具体实例对比 3.3建模与评价差异 4分类任务核心底层知识点总结 5学习总结与感悟 摘要 本文系统梳理了机器…

2026/8/19 15:08:31 阅读更多 →

最新新闻

编码器从原理到实战:数字电路、Verilog与嵌入式应用全解析

编码器从原理到实战:数字电路、Verilog与嵌入式应用全解析

这次我们来看一个数字电路中的基础但至关重要的组件——编码器。在数字系统、通信协议、传感器接口乃至各类嵌入式设备中,编码器都扮演着将特定信息转换为二进制代码的关键角色。无论是旋转编码器用于测量电机转速,还是优先编码器处理多个中断请求&#…

2026/8/21 3:39:21 阅读更多 →
智能体训练新范式:RPSR如何通过反思优化提升大模型决策能力

智能体训练新范式:RPSR如何通过反思优化提升大模型决策能力

1. 项目缘起:当智能体训练撞上“事后诸葛亮”最近在折腾大语言模型智能体训练时,我遇到了一个挺有意思的瓶颈。我们团队设计了一个能处理多步骤任务的智能体,比如让它根据用户需求去规划、调用工具、整合信息。训练初期,它表现得像…

2026/8/21 3:39:21 阅读更多 →
零成本解锁Coze工作流:免费导入、解析与运行全攻略

零成本解锁Coze工作流:免费导入、解析与运行全攻略

在实际使用 Coze 这类 AI 应用开发平台时,很多开发者会遇到一个瓶颈:平台的核心功能,尤其是工作流(Workflow)的复杂编排能力,往往与付费计划绑定。对于个人开发者、学生或项目初期的团队,直接付…

2026/8/21 3:39:21 阅读更多 →
Cloudflare 免费 SSL 证书与兼容端口列表科普

Cloudflare 免费 SSL 证书与兼容端口列表科普

Cloudflare 免费 SSL 证书与兼容端口列表科普 一、Cloudflare 的"免费 SSL"到底是什么 很多人第一次用 Cloudflare 时会有个误解:以为域名接入 Cloudflare 后自动获得的那把"小锁"证书,是自己网站真正的 HTTPS 证书。其实不完全是…

2026/8/21 3:39:21 阅读更多 →
加州酒庄烧毁葡萄园:供需失衡下的产业止损与市场调整

加州酒庄烧毁葡萄园:供需失衡下的产业止损与市场调整

1. 先理解“酒庄烧葡萄园”背后的真实困境看到“加州酒庄正在烧毁葡萄园”这个标题,很多人第一反应可能是震惊或不解。这听起来像是一个极端甚至有些荒谬的举动。但如果你身处葡萄酒行业,或者关注农业经济,就会明白这背后是一个典型的“供给过…

2026/8/21 3:39:21 阅读更多 →
互动团队均衡机制设计:从委托代理理论到管理实践

互动团队均衡机制设计:从委托代理理论到管理实践

1. 项目概述:当团队互动遇上委托代理,均衡机制为何存在?在经济学、管理学乃至计算机科学的交叉领域,有一个经典且棘手的问题:当老板(委托人)想激励一群员工(代理人)去完成…

2026/8/21 3:38:21 阅读更多 →

日新闻

机场边检旅客定位系统国产化白皮书:算法、硬件、底座平台全程自主

机场边检旅客定位系统国产化白皮书:算法、硬件、底座平台全程自主

前言随着国家数字基础设施信创替代、关键技术自主可控战略持续深化,口岸智慧安防、边检智能管控领域正全面进入国产化、自主化、安全可控升级周期。当前国内机场边检旅客识别与定位体系长期依赖国外商用视觉算法、进口成像硬件、闭源通用计算平台,存在核…

2026/8/21 0:00:42 阅读更多 →
别再把“数字孪生”当空间智能了!镜像视界揭开四维时空的真正面纱

别再把“数字孪生”当空间智能了!镜像视界揭开四维时空的真正面纱

别再把“数字孪生”当空间智能了!镜像视界揭开四维时空的真正面纱当下数字化建设浪潮中,很多项目将三维可视化、视频贴图叠加的数字孪生等同于空间智能。传统数字孪生更多停留在三维场景复刻,擅长把物理世界“画出来、展示出来”,…

2026/8/21 0:00:42 阅读更多 →
105、车载温度范围-40°C到85°C的影像质量一致性——ISP参数温漂补偿与产线标定策略

105、车载温度范围-40°C到85°C的影像质量一致性——ISP参数温漂补偿与产线标定策略

105、车载温度范围-40C到85C的影像质量一致性——ISP参数温漂补偿与产线标定策略 去年冬天在北方某车厂做A样评审,凌晨四点的黑河试验场,零下三十三度。客户拿了一台冷启动的车,中控屏上倒车影像全是雪花噪点,暗部细节直接糊成一片。我第一反应是sensor温度没上来,暗电流…

2026/8/21 0:00:42 阅读更多 →

周新闻

基于阿里云与通义千问(Qwen)构建AI应用:从模型调用到生产部署的完整实践指南

基于阿里云与通义千问(Qwen)构建AI应用:从模型调用到生产部署的完整实践指南

如果你是一名开发者,最近可能已经感受到了AI大模型正在从“玩具”变成“生产力工具”的强烈信号。从代码补全到智能Agent,从本地部署到云端API,我们正处在一个技术栈快速重构的节点。然而,面对层出不穷的模型、框架和工具&#xf…

2026/8/21 3:21:33 阅读更多 →
工业通信系统底层逻辑:04 反射——高频能量撞墙之后会发生什么?

工业通信系统底层逻辑:04 反射——高频能量撞墙之后会发生什么?

第四篇:反射——高频能量撞墙之后会发生什么? —— 你以为信号已经过去了,其实它正在回来打你 老Q的现场笔记 第五季,我们正式进入工业神经系统层。这里不再是单个设备的战斗,而是整个工厂“经脉”层面的秩序之战。从这一篇开始,你将第一次看清:看似简单的信号传播,背…

2026/8/21 0:02:09 阅读更多 →
【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码

【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。🍎 往期回顾关注个人主页:Matlab科研工作室👇 关注我领取海量matlab电子书和…

2026/8/19 11:55:16 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/20 6:11:08 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/20 21:46:49 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/21 0:14:22 阅读更多 →