Java学习心得
Java简介Java是一种强类型语言每个变量都必须先定义才能使用但是web前端开发中的html就是一种弱类型语言。例如String a;System.out.println(a);其中a没有初始化会报错应该改为String a“dddd”;Java中的数据类型注意long类型要在数字后面加L如long num1234L;同时float类型要在数字后加F和long同理Char类型就是单个的字符String类型才是字符串注意char中可以放单个的汉字引用数据类型整型拓展内容数据类型的转换Java中数据类型的等级排序从高到低为强转从低到高为自动转换强转示例double d 3.14; int i (int)d;Java中的变量、常量、作用域变量int num; //声明变量 num 10; //初始化 int sum 0; //声明并初始化 String name null; //引用类型初始化为null变量命名规则由字母、数字、$、_ 组成不能以数字开头区分大小写遵循驼峰命名法如 studentName不能使用 Java 关键字如 int, class常量final double PI3.1415926 //普通常量 static final String URL https://example.com; //静态常量常量的特点必须显示初始化且只能赋值一次命名规范全大写多个单词用下划线分隔普通常量和静态常量的区别普通常量归属于实例对象静态常量归属于类本身内存占用方面每次new新对象的时候普通变量会多一个副本重复占用内存而静态变量全局只存在一份能节省内存普通常量在创建实例的时候才初始化而静态常量在类加载的时候就已经完成了初始化作用域类级作用域public class ScopeDemo { // 类级变量静态变量 static int classNum 10; // 类级常量静态常量 static final String CLASS_NAME 测试类; public static void main(String[] args) { // 直接用类名访问无需创建对象 System.out.println(ScopeDemo.classNum); System.out.println(ScopeDemo.CLASS_NAME); } }范围整个类的大括号内、所有方法 / 代码块之外包含静态成员static 变量、static 方法属于类全类共享类加载后全程可见实例成员普通 final 常量、实例变量、实例方法属于对象所有实例方法内都能直接访问对象级作用域成员变量public class ScopeDemo { // 对象级普通变量 int objNum 20; // 对象级常量实例final常量 final String objId 001; public static void main(String[] args) { // 必须先new对象才能访问 ScopeDemo demo new ScopeDemo(); System.out.println(demo.objNum); System.out.println(demo.objId); // ScopeDemo.objNum; 直接类名调用会报错 } }范围每一个独立的对象依附于new出来的实例包含无static修饰的普通变量/常量注意final关键词只决定该变量能否修改值而不决定其所属作用域简单来说用static修饰的即为类级作用域而没有static修饰的即为对象级作用域方法级作用域局部变量public class ScopeDemo { public void testMethod() { // 方法级局部变量 int methodNum 30; System.out.println(methodNum); // 方法内可访问 if(true) { System.out.println(methodNum); // 方法内子块也能访问 } } public static void main(String[] args) { ScopeDemo demo new ScopeDemo(); demo.testMethod(); // System.out.println(demo.methodNum); 方法外无法访问报错 } }范围只作用于方法体内部即方法大括号内出了方法体即销毁包含方法体内部定义的变量/常量块级作用域if/for/while/{}内部定义public class ScopeDemo { public void testBlock() { // 方法级变量 int num 5; // for循环块级变量i for(int i 0; i num; i) { System.out.println(i); // 块内正常使用 } // System.out.println(i); 循环外访问i直接编译报错 // if代码块 if(num 0) { String blockStr 块内字符串; System.out.println(blockStr); } // System.out.println(blockStr); if块外访问报错 } public static void main(String[] args) { ScopeDemo demo new ScopeDemo(); demo.testBlock(); } }范围仅当前一对{}内有效出块即失效包含在if/for/while的条件中定义的变量/常量Java中的运算a与a的区别a是先用后赋值如ba则b先得到a的原始值然后a在对自己进行自增运算a是先赋值后用如ba则a先进行自增运算然后b得到a自增后的值幂运算幂运算需要用到工具类即Math类double powMath pow(2,3) //这就是计算2的3次方逻辑运算与运算两个变量都为真结果才为真或运算||两个变量都为假结果才为假非运算结果逻辑取反Scanner对象Scanner包的导入Scanner对象使用前要先导入Scanner包import java.util.Scanner;创建Scanner对象读取控制台Scanner sc new Scanner(System.in);System.in是系统标准输入流绑定键盘输入 System.in属于java.lang包会默认导入不需要手动import特点用于和用户交互键盘输入程序运行后等待手动输入关闭只会关闭 Scanner不会关闭 System.in 底层流。读取字符串文本Scanner scnew Scanner(data);完整示例public class TestStringSource { public static void main(String[] args) { // 数据源内存中的字符串无磁盘IO String data 张三 18 96.5; Scanner sc new Scanner(data); String name sc.next(); int age sc.nextInt(); double score sc.nextDouble(); System.out.println(name age score); sc.close(); } }特点不需要与用户交互这里的data是一个内存中写好的字符串类型的数据sc.next()是Scanner类的方法用于读取下一个是String类型的数据sc.nextInt()用于读取下一个是Int类型的数据sc.nextDouble()用于读取下一个是Double类型的数据以此类推读取本地txt文件由于功能需要这里需要额外导入两个包分别是File包用于表示磁盘文件和FileNotFoundException包用于捕获异常import java.io.File; import java.io.FileNotFoundException;特点可以读取本地文件完整示例public class TestReadFile { public static void main(String[] args){ //1.创建文件对象需要java.io.File File file new File(test.txt); Scanner sc null; try { //2.文件构造器会抛出文件不存在异常 sc new Scanner(file); //逐行读取文件 while(sc.hasNextLine()){ String line sc.nextLine(); System.out.println(line); } }catch (FileNotFoundException e){ System.out.println(File not found); e.printStackTrace(); }finally { if(sc ! null){ sc.close(); } } } }tip:这里的finally是为了防止资源占用无论是否发生异常在执行完try语句和catch语句后都会最后执行一次finally语句如果把这个if语句放到try语句的末尾则有可能不会执行提前发生错误跳到catch语句。Switch语句易懂说法switch译为选择switch(week)可以视作选择week这个变量然后case是这个变量可能的值当这个变量为这个case值的时候就执行对应的case语句特点Switch后跟变量名Switch通常用了匹配一个特定的值case的值几乎可以是所有的基本变量类型当所有case条件都不满足的时候执行default语句case 后跟的即为对应的case的值代码示例普通Switch语句public class SwitchDemo1 { public static void main(String[] args) { int week 3; switch (week) { case 1: System.out.println(星期一); break; // 阻断穿透 case 2: System.out.println(星期二); break; case 3: System.out.println(星期三); break; case 4: System.out.println(星期四); break; case 5: System.out.println(星期五); break; case 6: System.out.println(星期六); break; case 7: System.out.println(星期日); break; default: // 所有值都不匹配时执行 System.out.println(无效星期); } } }case穿透定义正常情况下要在每一个case语句后加上break语句否则会自动执行已满足条件case语句后面的所有case语句这种情况称为case穿透代码示例case穿透主动使用需求一年四季中每三个月份会共用一个季节以此为原理共用代码刻意利用穿透public class SwitchDemo2 { public static void main(String[] args) { int month 4; switch (month) { case 3: case 4: case 5: System.out.println(春季); break; // 本组最后一个case加break case 6: case 7: case 8: System.out.println(夏季); break; case 9: case 10: case 11: System.out.println(秋季); break; case 12: case 1: case 2: System.out.println(冬季); break; default: System.out.println(月份错误); } } }while循环语法while(布尔表达式) { //循环体 }特点只要布尔表达式为true循环就会一直执行大多数情况是会让循环停下来的会用一个让表达式失效的方式来结束循环少部分情况需要循环一直执行如服务器的请求响应监听循环条件永远为true会造成死循环while先判断再执行do while循环语法do { //代码语句 }while(布尔表达式);特点与while循环类似但是while循环不满足条件就不会进入循环而do while循环即使是不满足循环条件也会先执行一遍do语句do while 先执行后判断break和continue的区别和用法break和continue可以用在while 和 do while 语句中break是直接终止循环continue是跳过当前这次符合条件的循环可变参数定义可变参数允许方法同时接收任意个同类型参数其底层逻辑就是数组只是数组的调用简单化语法规则一个方法最多只能有一个可变参数可变参数必须放在参数列表最后一位后面不能再写普通参数调用时可以不传参数、传 1 个、传 N 个同类型参数底层等价数组方法内部可以像数组一样遍历、取值。由于可变参数的底层逻辑是数组所以在方法内部可以把它当作数组去处理代码示例常规形式public void test (int a,Sting... strs){}可变参数搭配普通参数形式public class VarParamDemo2 { // 普通参数在前可变参数在最后 public static void printInfo(String name, int age, String... hobbies) { System.out.println(姓名 name 年龄 age); System.out.print(爱好); for (String hobby : hobbies) { System.out.print(hobby ); } System.out.println(\n); } public static void main(String[] args) { // 不传爱好 printInfo(张三, 18); // 传2个爱好 printInfo(李四, 20, 篮球, 游戏); // 传4个爱好 printInfo(王五, 19, 看书, 跑步, 听歌, 摄影); } }可变参数数组示例public static void show(String... words) { for(String w : words) System.out.println(w); } public static void main(String[] args) { String[] strArr {A,B,C}; show(strArr); // 合法直接传数组 }重载方法的优先级示例public class OverloadTest { // 数组参数 public static void test(int[] arr) { System.out.println(数组版本执行); } // 可变参数 public static void test(int... arr) { System.out.println(可变参数版本执行); } public static void main(String[] args) { int[] a {1,2}; test(a); // 输出数组版本执行 test(1,2); // 输出可变参数版本执行 } }重载方法的优先级解释当方法同时存在数组参数和可变参数重载时即同名方法一个是传入数组参数一个是传入可变参数采用以下调用规则传入固定个数参数/不传参数优先匹配可变参数方法传入数组对象优先匹配数组参数方法

相关新闻

UVa 694 The Collatz Sequence

UVa 694 The Collatz Sequence

题目描述 给定一个正整数 AAA 和限制值 LLL,根据 Collatz\texttt{Collatz}Collatz 序列生成规则: 若 A1A 1A1,停止;若 AAA 为偶数,则 AA/2A A / 2AA/2;若 AAA 为奇数,则 A3A1A 3A 1A3A1。 要…

2026/7/18 13:33:04阅读更多 →
Coze变量命名规范与记忆持久化最佳实践:ISO/IEC 29110认证团队验证的7条硬性标准

Coze变量命名规范与记忆持久化最佳实践:ISO/IEC 29110认证团队验证的7条硬性标准

更多请点击: https://intelliparadigm.com 第一章:Coze变量与记忆功能的架构本质与设计哲学 Coze 的变量与记忆系统并非简单的键值存储抽象,而是融合了对话生命周期管理、上下文感知推理与多粒度状态隔离的设计范式。其核心在于将“状态”视…

2026/7/18 13:33:04阅读更多 →
3D高斯语义占据预测:从LiDAR引导的可变形注意力到自动驾驶场景理解

3D高斯语义占据预测:从LiDAR引导的可变形注意力到自动驾驶场景理解

1. 从体素到高斯:为什么我们需要一种新的场景表示? 如果你最近在关注自动驾驶或者三维视觉领域,大概率会频繁听到“3D Gaussian Splatting”这个词。它最初在NeRF领域大放异彩,以其惊人的渲染质量和速度,几乎重塑了我们…

2026/7/18 13:33:04阅读更多 →
系统规划与管理师-IT 服务团队岗位设计方法论与实践

系统规划与管理师-IT 服务团队岗位设计方法论与实践

一、引言(一)核心概念定义岗位设计是在工作分析输出的岗位说明书基础上,对岗位的工作内容、职责权限、协作关系进行系统性重构的管理活动,核心目标是实现组织绩效提升与员工个人需求满足的双赢,属于软考高级系统规划与…

2026/7/18 14:38:09阅读更多 →
系统规划与管理师-工作分析 — 人力资源管理的核心基础

系统规划与管理师-工作分析 — 人力资源管理的核心基础

一、引言核心概念定义工作分析又称职务分析、岗位分析,是通过系统的方法收集、整理、分析组织中岗位的工作内容、职责权限、工作关系、工作环境,以及任职者所需的知识、技能、能力、素质等要求的系统性活动,本质是对组织分工边界与分工标准的…

2026/7/18 14:38:09阅读更多 →
如何永久保存微信聊天记录:打造个人专属AI记忆库的完整指南

如何永久保存微信聊天记录:打造个人专属AI记忆库的完整指南

如何永久保存微信聊天记录:打造个人专属AI记忆库的完整指南 【免费下载链接】WeChatMsg 提取微信聊天记录,将其导出成HTML、Word、CSV文档永久保存,对聊天记录进行分析生成年度聊天报告 项目地址: https://gitcode.com/GitHub_Trending/we/…

2026/7/18 14:38:09阅读更多 →
Windows11 OpenClaw 2.7.9 本地 AI 智能体完整部署实操手册

Windows11 OpenClaw 2.7.9 本地 AI 智能体完整部署实操手册

✨OpenClaw 全平台资源获取与完整安装流程 适配设备:Windows10/11 64 位、Mac 全机型 部署压缩包体积:45.7MB 运行特点:纯图形可视化操作、无代码操作门槛、本地数据存储 📖开篇简述 OpenClaw(圈内昵称"小龙虾&q…

2026/7/18 14:38:09阅读更多 →
7步掌握USBCopyer:Windows平台USB自动备份工具的完整使用指南

7步掌握USBCopyer:Windows平台USB自动备份工具的完整使用指南

7步掌握USBCopyer:Windows平台USB自动备份工具的完整使用指南 【免费下载链接】USBCopyer 😉 用于在插上U盘后自动按需复制该U盘的文件。”备份&偷U盘文件的神器”(写作USBCopyer,读作USBCopier) 项目地址: http…

2026/7/18 14:38:09阅读更多 →
3分钟掌握星露谷物语XNB解包神器:StardewXnbHack完全指南

3分钟掌握星露谷物语XNB解包神器:StardewXnbHack完全指南

3分钟掌握星露谷物语XNB解包神器:StardewXnbHack完全指南 【免费下载链接】StardewXnbHack A simple one-way XNB unpacker for Stardew Valley. 项目地址: https://gitcode.com/gh_mirrors/st/StardewXnbHack 你是否曾经想要修改星露谷物语中的游戏资源&…

2026/7/18 14:33:09阅读更多 →
VSCode TypeScript 环境配置对比:全局安装 vs 项目本地安装的4个关键差异

VSCode TypeScript 环境配置对比:全局安装 vs 项目本地安装的4个关键差异

VSCode TypeScript 环境配置对比:全局安装 vs 项目本地安装的4个关键差异当你在VSCode中启动一个新的TypeScript项目时,第一个技术决策往往从安装方式开始。这个看似简单的选择——全局安装还是项目本地安装——实际上会深刻影响你的开发流程、团队协作和…

2026/7/18 10:49:13阅读更多 →
智慧树刷课插件:5分钟实现自动化学习的智能助手

智慧树刷课插件:5分钟实现自动化学习的智能助手

智慧树刷课插件:5分钟实现自动化学习的智能助手 【免费下载链接】zhihuishu 智慧树刷课插件,自动播放下一集、1.5倍速度、无声 项目地址: https://gitcode.com/gh_mirrors/zh/zhihuishu 智慧树刷课插件是一款专为智慧树在线教育平台设计的Chrome浏…

2026/7/18 8:49:08阅读更多 →
Steam创意工坊下载器WorkshopDL:跨平台游戏模组获取的终极解决方案

Steam创意工坊下载器WorkshopDL:跨平台游戏模组获取的终极解决方案

Steam创意工坊下载器WorkshopDL:跨平台游戏模组获取的终极解决方案 【免费下载链接】WorkshopDL WorkshopDL - The Best Steam Workshop Downloader 项目地址: https://gitcode.com/gh_mirrors/wo/WorkshopDL 你是否在GOG或Epic Games Store购买了心仪的游戏…

2026/7/17 13:22:23阅读更多 →
从模糊意图到可执行指令:Claude PRD中Prompt Engineering与需求颗粒度的5级映射法则

从模糊意图到可执行指令:Claude PRD中Prompt Engineering与需求颗粒度的5级映射法则

更多请点击: https://kaifayun.com 第一章:从模糊意图到可执行指令:Claude PRD中Prompt Engineering与需求颗粒度的5级映射法则 在Claude驱动的产品需求文档(PRD)生成实践中,原始业务意图往往以自然语言片…

2026/7/18 0:00:14阅读更多 →
Cursor配置生成失效?3大隐藏陷阱+4行修复代码,资深工程师连夜整理的紧急补救清单

Cursor配置生成失效?3大隐藏陷阱+4行修复代码,资深工程师连夜整理的紧急补救清单

更多请点击: https://codechina.net 第一章:Cursor配置生成失效?3大隐藏陷阱4行修复代码,资深工程师连夜整理的紧急补救清单 Cursor 配置生成突然失效,是近期高频报障场景。表面看是 cursor.config.json 未更新或 LSP…

2026/7/18 0:00:14阅读更多 →
某智驾大牛创业

某智驾大牛创业

作者:钟声编辑:Mark出品:红色星际头图:智能驾驶图片据悉,国内某头部智驾公司端到端模型技术大牛Z投身创业,并且已经拿到融资。Z不仅是该头部公司内部最年轻的对标阿里P10级别技术负责⼈,更是业内…

2026/7/18 0:00:14阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时,发现推理速度只有可怜的 1-2 FPS,而别人的演示视频却能跑到 30 FPS 以上,那么问题很可能不在模型本身,而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后,会直接使用官方示例…

2026/7/17 22:48:46阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一:为什么你需要了解 Coze 和 Dify?如果你对 AI 应用开发感兴趣,但一看到“大模型”、“智能体”、“工作流”这些词就头疼,觉得门槛太高,那这篇文章就是为你准备的。很多开发者,包括我自己&#…

2026/7/17 13:22:38阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会:配图一直是个让人头疼的问题。2026年,AI生图工具已经非常成熟了,但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1:速度之王2026年6月11日&#xff0c…

2026/7/17 17:26:50阅读更多 →