JavaSE学习体会
JavaSE学习体会总结整体感受总结我是最棒的基础不牢地动山摇整体感受​ 通过一个月沉下心来重新学习JavaSE部分真的是收获颇多。想我之前自学的路上走了不少弯路也有许多东西未曾了解不过这一个月给我带来的提升真的很大。​ 人成长是一个过程Java学习也是一个过程。首先对我产生最大影响的就是一个观念不仅知道一个东西怎么用也需了解这个东西是怎么做出来的。从最简单的定义变量例如基本数据类型和引用数据类型了解到堆栈中他们是怎么出来的。​ 举个栗子publicstaticvoidmain(String[]args){inta1;String strHello World;}​ 上面的main方法在栈中有一个栈桢int a 1相当于在main方法这个栈桢里面开辟了一块空间里面有一个a变量存放了 1 这个值。而String是引用类型它会在堆中开辟空间存储“Hello World”并且有一个地址然后将这个地址存放在栈中的str里面。以前都是片面的认为定义变量都是一回事现在画一个堆栈图很容易就能理解。后面的许多知识点都可以用堆栈图来分析。示例图如下然后我的代码的风格也变得越来越好格式注释还有空行等。以前自己写的代码可能是一团乱麻现在看起来条理清楚自己看着也很有成就感。命名使用大小驼峰来完成不会使用拼音或者中西结合。遇到不会的词就去查查再用英文来命名舒服多了。可能现在的我看到我以前写的xuesheng类也会有打死自己的冲动吧2333。但是呢我现在写注释的习惯不是很好感觉一个东西很简单就不愿意去写注释这一点出大问题需要静下心来多写写注释不然以后人家提刀来见我就不好了。下面是我自己写的一个模拟断点续传代码勿喷注释确实写的少packagecn.itsource.randomaccess;importjava.io.File;importjava.io.FileNotFoundException;importjava.io.IOException;importjava.io.RandomAccessFile;/** * 模拟实现文件的断点续传 */publicclassResume{//记录指针位置privatestaticlongposition-1;publicstaticvoidmain(String[]args){//定义源文件与目标文件File srcFilenewFile(test.txt);File destFilenewFile(F:/test.txt);//使用随机文件访问类来完成RandomAccessFile srcRafnull;RandomAccessFile destRafnull;try{srcRafnewRandomAccessFile(srcFile,rw);destRafnewRandomAccessFile(destFile,rw);//定义字节数组一个字节一个字节的读取byte[]bsnewbyte[1];//读取操作while(srcRaf.read(bs)!-1){//写出操作destRaf.write(bs);//模拟网络中断if(destFile.length()3){//记录断开时的指针位置positionsrcRaf.getFilePointer();System.out.println(网络连接中断);thrownewFileAccessException();}}}catch(FileNotFoundExceptione){e.printStackTrace();}catch(IOExceptione){e.printStackTrace();}catch(FileAccessExceptione){//续传操作resume(srcRaf,destRaf,position);}finally{//关流操作try{if(destRaf!null){destRaf.close();}}catch(IOExceptione){e.printStackTrace();}finally{if(srcRaf!null){try{srcRaf.close();}catch(IOExceptione){e.printStackTrace();}}}}}/** * 续传方法 * param src * param dest * param position */publicstaticvoidresume(RandomAccessFile src,RandomAccessFile dest,longposition){//模拟网络中断10stry{Thread.sleep(10000);}catch(InterruptedExceptione1){e1.printStackTrace();}try{byte[]bsnewbyte[1];//将指针位置设置为上次断开时的位置src.seek(position);dest.seek(position);//继续完成读写操作while((src.read(bs))!-1){dest.write(bs);}System.out.println(续传成功);}catch(IOExceptione){e.printStackTrace();}}}/** * 自定义异常类 */classFileAccessExceptionextendsException{}​ 最重要的是学到了很多新的知识点比如JDK8新特性里面的Lambda表达式简化了匿名内部类很多步骤同时也认识了函数式接口。还有就是以前一些很模糊的概念也变得很清晰了比如设计类的时候需要注意的很多地方封装、无参构造、public修饰符、get和set方法等等。还有代码块的执行顺序继承和多态等。以前我都是一知半解现在应该掌握了大半剩下的就是用心敲代码至熟练咯。IO流里面的各种流以前自学的时候没分清楚字节流和字符流不知道到底有什么区别现在问题不大。后面学习的流式处理从头到尾就像管道一样对源数据操作但是不会改变源数据的类型。Lambda表达式的一个栗子接口packagecn.itsource.lambda;FunctionalInterfacepublicinterfaceIMyInterface{voidtest();}测试类packagecn.itsource.lambda;publicclassLambdaTest{publicstaticvoidmain(String[]args){//匿名内部类方式IMyInterface iMyInterfacenewIMyInterface(){Overridepublicvoidtest(){System.out.println(wdnmd);}};iMyInterface.test();//Lambda表达式IMyInterface iMyInterface2()-System.out.println(wdnmd);iMyInterface2.test();}}是不是感觉很舒服这代码量​ 最后一天学习了反射这个知识点我以前只是有所耳闻现在有一点理解了通过全限定类名来获取该类的字节码文件然后通过字节码文件获得该类里面的成员字段构造方法普通方法等。后面会学习的框架很多是基于反射的后续会继续加强。反射的示例代码packagecn.itsource.reflectdemo;importjava.lang.reflect.Constructor;importjava.lang.reflect.Field;importjava.lang.reflect.Method;publicclassReflectTest{publicstaticvoidmain(String[]args)throwsException{/* * 利用反射获取该类的构造方法并且使用newInstance创建对象 */Class?forNameClass.forName(cn.itsource.reflectdemo.A);Constructor?constructorforName.getConstructor(int.class,int.class);System.out.println(constructor);// Constructor?[] constructors forName.getConstructors();// for (Constructor? constructor : constructors) {// System.out.println(constructor);// }// Constructor?[] declaredConstructors forName.getDeclaredConstructors();// for (Constructor? constructor : declaredConstructors) {// System.out.println(constructor);// }Object newInstanceconstructor.newInstance(1,2);System.out.println(newInstance);/* * 使用反射调用普通方法 */Method[]declaredMethodsforName.getDeclaredMethods();for(Method method:declaredMethods){System.out.println(method);}Method methodforName.getMethod(test);method.invoke(newInstance);Method method2forName.getMethod(test3,int.class);method2.invoke(newInstance,3);/* * 使用反射调用字段 */Field[]fieldsforName.getFields();for(Field field:fields){System.out.println(field);}Field[]declaredFieldsforName.getDeclaredFields();for(Field field:declaredFields){System.out.println(field);}// Field field forName.getDeclaredField(a);Field fieldforName.getField(c);field.setAccessible(true);field.set(null,3);System.out.println(field.get(null));/* * 获取限定名和简写名 */String nameforName.getName();System.out.println(name);String simpleNameforName.getSimpleName();System.out.println(simpleName);}}/** * 自定义类 */classA{privateinta;intb;publicstaticintc;privateA(){}publicA(inta,intb){this.aa;this.bb;}publicvoidtest(){System.out.println(test);}publicvoidtest3(inta){System.out.println(a);}privatevoidtest2(){System.out.println(test2);}}​这个月的学习获益匪浅不过需戒骄戒躁继续保持下去。感谢每个真心待我的人谢谢你们也感谢自己有勇气做出选择铁石心肠也有水滴石穿的一天继续加油

相关新闻

嵌入式按键消抖

嵌入式按键消抖

嵌入式中,经常使用按键作为人机交互的接口,典型的按键电路如下所示: 在实际使用过程中,由于误触及按键的机械特性,按键按下或松开时的输出的波形上会存在抖动,一般可以通过增加滤波电容C1进行处理。但是在实…

2026/10/7 1:19:29 阅读更多 →
基于CH554单片机的USB Host转蓝牙键盘转换器设计与实现

基于CH554单片机的USB Host转蓝牙键盘转换器设计与实现

1. 项目概述:为什么用CH554做USB Host转蓝牙键盘? 最近在折腾一个挺有意思的小项目:用一块国产的8位单片机CH554,把它变成一个USB Host,然后读取普通USB键盘的按键数据,再通过蓝牙模块发送出去,…

2026/10/8 5:33:21 阅读更多 →
AI时代下Processing在创意编程中的不可替代性

AI时代下Processing在创意编程中的不可替代性

1. 当AI Coding遇上Processing:创意编程的变与不变最近在创意编程圈里有个热议话题:随着AI代码生成工具的爆发式发展,像Processing这样的传统创意编程工具还有学习的必要吗?作为一个从2012年就开始用Processing做交互装置的老程序…

2026/10/13 5:27:00 阅读更多 →

最新新闻

DEM河流提取全流程:从填洼到矢量河网的GIS实操指南

DEM河流提取全流程:从填洼到矢量河网的GIS实操指南

简介:面向GIS与水文分析学习者的一份完整DEM河流提取实践包,聚焦如何从数字高程模型中自动识别与提取河网。内含可直接运行的DEM_Water_Analysis.exe、配套的dem-data.txt测试数据,以及用C#编写的核心算法源代码,帮助用户从数据准…

2026/10/13 13:05:17 阅读更多 →
Eclipse安装包完全指南:从JDK配置到插件安装与排错

Eclipse安装包完全指南:从JDK配置到插件安装与排错

简介:Eclipse 是 Java 开发常用的开源集成开发环境,这份安装包主要面向 Java 初学者、日常编码者以及需要在离线或受限网络中快速搭建 IDE 的团队和个人,省去官网逐项下载的麻烦,可快速获得完整可运行环境。压缩包共 2000 个文件&…

2026/10/13 13:05:17 阅读更多 →
Java源码小区物业管理系统:从技术选型到部署二次开发全解析

Java源码小区物业管理系统:从技术选型到部署二次开发全解析

简介:这是一份基于B/S架构的小区物业管理系统毕业设计源码,面向Java Web学习者、在校生及需要快速搭建物业管理Demo的开发者。系统围绕业主管理、房屋管理、收费管理、报修服务、公告通知、访客管理、停车管理等核心模块展开,可帮助读者理解权…

2026/10/13 13:05:17 阅读更多 →
Java物业系统源码实战:从数据模型到二次开发避坑指南

Java物业系统源码实战:从数据模型到二次开发避坑指南

简介:标题标注Java的小区物业管理系统源码包,实际内容以Delphi工程为主,围绕业主、房屋、收费、报修、公告、访客和停车等环节构建功能模块,适合初学桌面软件开发或希望了解物业管理信息化流程的读者对照学习。压缩包共收录74个文…

2026/10/13 13:05:17 阅读更多 →
手写 Tool Use 全解析:从正则指令到 ReAct Agent 的实现路径

手写 Tool Use 全解析:从正则指令到 ReAct Agent 的实现路径

上个月面了一家做智能客服的创业公司,技术面进行到一半,面试官把电脑转向我,说:“你简历里写了‘熟悉大模型应用开发’,那应该用过 Tool Use。我不需要你背 SDK,你给我在白板上手写一个 Tool Use&#xff0…

2026/10/13 13:05:17 阅读更多 →
S12芯片ATD模拟量采集与12864显示实践全解析

S12芯片ATD模拟量采集与12864显示实践全解析

简介:一份基于飞思卡尔 MC9S12DG128 的 AD 采集与显示实验资源,适合嵌入式初学者、单片机课程设计或 S12 系列开发者参考。资源演示了如何利用芯片内置的多通道 8 位高速 AD 转换器进行数据采集,并通过 12864 液晶屏实时显示结果,…

2026/10/13 13:04:16 阅读更多 →

日新闻

物联网系统集成避坑指南:从选型到验收的关键要点

物联网系统集成避坑指南:从选型到验收的关键要点

做了这么多年物联网系统集成的项目,我最大的感受是,大部分坑不是出在技术前沿,而是出在一些看起来很平常的地方。设备选了便宜的、协议没问清楚、现场没摸透、验收标准写得含糊——这些细枝末节,最后都会变成延期、超支和扯皮的大…

2026/10/13 0:00:57 阅读更多 →
ESP32舵机控制全攻略:从PWM原理到高级玩法与常见故障排查

ESP32舵机控制全攻略:从PWM原理到高级玩法与常见故障排查

如果你玩ESP32有一阵子了,很难不碰到舵机控制这道坎。做智能小车要转方向,做机械臂要抬关节,做云台要偏航俯仰,背后都是同一个东西在干活:舵机。而我见过太多人卡在“代码能编译、舵机就是不听话”这个阶段&#xff0c…

2026/10/13 0:00:57 阅读更多 →
CAN总线原理与STM32实战:抗干扰、仲裁、错误处理全解析

CAN总线原理与STM32实战:抗干扰、仲裁、错误处理全解析

1. 为什么CAN总线至今仍是工业现场的“硬通货”?——从汽车底盘到智能温室的真实需求你有没有拆过一辆老款燃油车的中控台?或者调试过某高校实验室里那台跑着Modbus协议却频频丢帧的PLC控制柜?又或者,在某个农业物联网项目里&…

2026/10/13 0:00:57 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/13 2:54:56 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/12 0:16:38 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/13 1:58:08 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 21:05:09 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 14:48:49 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 18:11:17 阅读更多 →