自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(42)
  • 收藏
  • 关注

原创 如何学习Java

2. 核心语法:吃透变量/数据类型、流程控制(if-else、循环)、数组、面向对象核心(类/对象、封装/继承/多态、接口/抽象类),这是所有进阶内容的前提。1. 核心进阶:深入集合框架(源码逻辑、常用类区别)、多线程(线程创建、同步机制、线程池)、JVM基础(垃圾回收、内存模型),解决实际开发中的性能/并发问题。3. 基础工具类:熟悉String、集合入门(ArrayList、HashMap)、IO流、异常处理,能独立写简单工具(如文件读写、数据存储)。一、基础阶段(打牢根基,核心中的核心)

2025-12-08 14:35:37 284

原创 Java的应用

解决方案:重写需保证方法签名(方法名+参数列表)完全一致,子类返回值可是父类返回值的子类(协变返回),强制添加@Override校验。解决方案:根据场景选择:查询多用ArrayList,增删多用LinkedList,去重/无序用HashSet,有序用TreeSet。2. 抽象类与接口混淆:不清楚何时用抽象类(is-a关系,含具体方法)、何时用接口(has-a能力,全抽象/静态方法)。解决方案:需要复用代码用抽象类,需要多实现、定义规范用接口(Java 8+接口可含默认方法)。二、IO与集合框架问题。

2025-12-08 14:32:48 209

原创 常用的集合补充

(1) static Collection synchronizedCollection(Collection c): 将不安全的Collection集合转换为安全性的。(2) ConcurrentLinkedQueue : 位于java.util.concurrent包中,线程安全并且高效的Queue接口的实现类,她。(1) Lock:位于 java.util.concurrent.locks 包中,比之前的synchronized 使用更灵活和广泛。(位于 java.util 包中)【练习】

2025-12-08 14:31:02 306

原创 线程的理解

c. 创建线程对象: Thread t2 = new Thread(mt);2. 主线程:目前程序为单线程,此线程以main函数的开始为开始,以main函数的结束为结束,此线程被称为主。(2) 数据:栈空间独立(每一个线程有独立的栈空间);b. 创建线程的目标对象:Mytarget mt = new MyTarget();b. 创建线程对象:MyThread t1 = new MyThread();c. 开启线程:t1.start();d. 开启线程:t2.start();3. 线程的组成部分:【理解】

2025-12-08 14:30:55 113

原创 异常的处理

a. try后面可以定义多个 catch结构,一旦try出现异常,则从第一个catch,从上往下依次进行匹配。(3) 语法:修饰符 返回值类型 方法名(形参列表)throws 异常类名1,异常类名2,异常类名3{}b. catch可以利用父类型处理本类型+所有子类型的异常,多态技术的应用。(4) 结果:消极处理异常只是推卸责任,程序还是会因异常而被终止。(6) 注意:消极处理异常时可以 利用父类型处理其子类型的异常。(5) 作用:消极处理异常可以让非运行时异常在编译阶段通过。1. 消极处理异常(声明异常)

2025-12-08 14:30:47 433

原创 Map集合体系

(4) boolean containsKey(K key):判断Map集合中是否包含指定的键,包含-true;(1) V put(K key,V value) : 往Map集合中添加一个键值对,如果键在Map中没有存在,则直接添加,返回值为。(2) V remove(K key):根据键,删除对应的键值对,被删除的值(value)作为返回值返回。(1) 存储任意的 键值对 (key-value),Map中一个集合元素是一个键值对。(3) V get(K key):根据键,返回对应的值(value)。

2025-12-04 09:53:45 420

原创 Java中Collection接口的常用方法有哪些?

• boolean equals(Object o):比较两个集合是否相等(元素、顺序需一致,Set 不看顺序)。• boolean remove(Object o):移除指定元素,成功返回 true。• boolean contains(Object o):判断是否包含指定元素。• Iterator<E> iterator():获取迭代器,用于遍历元素。• <T> T[] toArray(T[] a):转换为指定类型的数组。• boolean isEmpty():判断是否为空(元素数为 0)。

2025-12-04 09:50:42 137

原创 集合的遍历方式

filter(elem -> elem.startsWith("A")) // 过滤条件。仅适用于 List 接口(有序、有索引),支持按索引操作元素。if (elem.equals("无效元素")) {语法简洁,无需手动控制索引,不能修改集合结构(增删元素)。结合 forEach() 方法,代码极简,适合快速遍历。最基础的遍历方式,支持边遍历边删除(唯一安全方式)。适合复杂遍历(过滤、映射、排序等),支持链式操作。// 简化写法(方法引用)

2025-12-04 09:49:48 296

原创 集合接口对应的实现类

• TreeSet:基于红黑树(TreeMap 底层)实现,自动排序(自然排序或自定义 Comparator),查询/增删效率低于 HashSet。• LinkedList:基于双向链表实现,增删快、查询慢,线程不安全,还实现了 Deque 接口(支持队列/栈操作)。• Vector:基于动态数组实现,线程安全(方法加锁),但效率低,已逐渐被 ArrayList 替代。• HashSet:基于哈希表(HashMap 底层)实现,查询/增删快,无序,允许 null。3. Queue 接口(队列,先进先出)

2025-12-04 09:48:47 276

原创 为什么说 Object 类是所有类的超类?创建一个没有显式继承任何类的自定义类,如何证明它继承了 Object 类?

这是Java的核心规范,目的是为所有对象提供统一的基础方法(如equals()、hashCode()、toString()等),保证对象的基本行为一致性,简化编程逻辑。// 输出:true。无显式继承的类,编译器会自动为其添加extends Object(隐式继承),因此它具备Object类的所有特性。// 调用Object类的toString()方法(自定义类未重写,使用父类实现)// 调用Object类的equals()方法。

2025-12-04 09:46:13 114

原创 简述String、StringBuilder和StringBuffer的区别?

可变性 不可变(底层char数组final) 可变(动态扩容char数组) 可变(动态扩容char数组)线程安全 安全(无修改操作) 不安全(无同步锁) 安全(方法加synchronized)适用场景 字符串常量、少量拼接 单线程大量字符串拼接 多线程大量字符串拼接。性能 最低(拼接创建新对象) 最高(无锁操作) 中等(锁开销)• String适合读多写少的场景,拼接频繁会产生大量无用对象;• 单线程环境优先用StringBuilder(性能最优);

2025-12-03 17:05:02 188

原创 字符串的多种创建方式

• 原理:无论常量池是否存在"abc",都会在堆内存新建一个String对象,再引用常量池中的"abc"(或创建后引用),一定新建对象。• 原理:先检查字符串常量池是否存在"abc",存在则直接引用,不存在则创建后放入常量池,不新建对象(复用性强,效率高)。• 语法2(变量拼接):String a = "a";• 语法1(常量拼接):String str = "a" + "b" + "c";• 原理:编译期优化为"abc",直接从常量池获取(同直接赋值)。• 语法:String str = "abc";

2025-12-03 17:03:54 170

原创 异常的两种处理方式

• 核心特点:将异常责任转移给上层调用者,调用者需通过try-catch捕获或继续throws。public void 方法名() throws 异常类1, 异常类2 {当前方法不处理异常,声明该方法可能抛出的异常类型,由调用者负责处理。// 无论是否发生异常,必执行的代码(如关闭流、释放资源)// 可能抛出异常的代码(如IO操作、空指针风险代码)主动捕获代码中可能出现的异常,并针对性处理,避免程序崩溃。// 处理异常1的逻辑(如打印日志、提示用户)// 可能抛出异常的代码。// 处理异常2的逻辑。

2025-12-03 16:59:07 799

原创 Java程序设计2常见问题及解决方案

解决方案:用迭代器Iterator的remove()方法,或使用stream().filter()过滤后重建集合。解决方案:重写需保证方法签名(方法名+参数列表)完全一致,子类返回值可是父类返回值的子类(协变返回),强制添加@Override校验。解决方案:根据场景选择:查询多用ArrayList,增删多用LinkedList,去重/无序用HashSet,有序用TreeSet。2. 抽象类与接口混淆:不清楚何时用抽象类(is-a关系,含具体方法)、何时用接口(has-a能力,全抽象/静态方法)。

2025-12-03 16:50:03 273

原创 如何运用IntelliJ IDEA 编程

• 需提前安装MinGW或Clang编译器,在IDEA中配置:「File」→「Settings」→「Build, Execution, Deployment」→「Toolchains」→ 点击「+」添加编译器路径 → 应用生效。1. 新建项目:打开IDEA → 选择「New Project」→ 选择编程语言(如Java/C++)、JDK版本 → 命名项目并选择存储路径 → 点击「Create」。• 快速修复错误:光标定位到错误处,按「Alt+Enter」,IDEA会提供错误修复建议。

2025-12-03 16:48:06 600

原创 计算机科学与技术专业

• 人工智能(机器学习、深度学习)、大数据处理(Hadoop/Spark)、云计算(Docker/Kubernetes)、网络安全(密码学、渗透测试)等。• 掌握工具链:熟练使用IDE(如Visual Studio Code、IDEA)、版本控制(Git)、调试工具(Postman)。• 数据结构与算法:学习数组、链表、树等数据结构,以及排序、搜索、动态规划等算法(如快速排序、Dijkstra最短路径)。• 跨学科特性:可与数学(加密算法)、自动化(机器人控制)、医学(医疗影像分析)等领域交叉应用。

2025-06-18 14:25:43 592

原创 简述python

Python是一种跨平台、解释型、动态类型的高级编程语言,以简洁易读、语法优雅、功能强大著称,广泛应用于数据分析、人工智能、Web开发、自动化等领域。• 丰富的库和框架:标准库涵盖文件操作、网络通信等功能,第三方库如numpy(科学计算)、django(Web开发)生态庞大。• 动态类型:变量无需提前声明类型(如x = 10,x = "字符串"均可),运行时自动推断。person = {"name": "张三", "age": 25}fruits = ["苹果", "香蕉", "橘子"]

2025-06-18 14:11:33 527

原创 介绍一下Java中private修饰符的使用场景

在Java中,private修饰符是最严格的访问修饰符,用于限制成员(字段、方法、内部类)仅能在当前类内部访问。// 错误示例:OuterClass.PrivateInner inner = new OuterClass.PrivateInner();• 目的:隐藏类的内部状态,通过公共方法(getter/setter)控制数据读写,保证数据合法性。if (pwd.length() >= 6) { // 密码长度校验。System.out.println("私有内部类方法");

2025-06-18 14:10:01 579

原创 Java三个修饰符

• 作用:常用于封装,隐藏类的内部实现细节,通过公共方法(如getter/setter)控制数据访问。• abstract:抽象修饰符,用于抽象类(不能实例化)或抽象方法(无方法体,需子类实现)。• final:最终修饰符,用于类(不能被继承)、方法(不能被重写)、字段(值不可变)。• 访问范围:私有修饰符,被修饰的方法、字段仅能在当前类内部访问,外部类无法直接调用。// 私有字段,外部不可直接访问。// 直接通过类名访问。• 访问范围:公开修饰符,被修饰的类、方法、字段可在任何包、任何类中被访问。

2025-06-18 14:08:51 447

原创 用Python写一个可视化大屏

add_yaxis("收入(元)", data["income_data"], is_smooth=True, color="#675bba").add_yaxis("订单数", data["order_data"], is_smooth=True, color="#d14a61").add_yaxis("订单数", data["order_data"][-7:], color="#5793f3")categories = ["产品A", "产品B", "产品C", "产品D", "产品E"]

2025-06-18 14:07:43 491

原创 Java基础框架

◦ List/ArrayList/LinkedList:有序可重复列表(ArrayList数组实现,LinkedList链表实现)。• Eclipse/IntelliJ IDEA:代码编辑、调试、项目管理(IDEA更智能,近年主流)。2. 进阶阶段:学习Spring框架(IOC、AOP)、MyBatis(ORM映射)等企业级框架。• 组成:JVM + 核心类库(如java.lang、java.util)+ 运行时工具。• Socket/ServerSocket:TCP通信(客户端/服务器模式)。

2025-06-18 14:05:02 515

原创 Java循环结构

循环结构是编程的基础逻辑,根据场景选择合适的类型:已知次数用for,条件驱动用while,至少执行一次用do-while,遍历集合用增强for。• 避免死循环:确保循环条件能最终为假(如while(true)需配合break使用)。• continue:跳过本次循环剩余代码,直接进入下一次循环(如过滤特定元素)。• 由“循环条件”和“循环体”组成:条件为真时执行循环体,否则退出。• 效率优化:减少循环体内的重复计算(如将不变量移到循环外)。

2025-06-18 14:03:37 837

原创 java程序电脑安装教程

若需手动配置,打开“终端”,使用文本编辑器(如nano)打开shell配置文件,如“.bash_profile”或“.zshrc”,添加“export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk-xx.jdk/Contents/Home”(xx为版本号)和“export PATH=PATH:JAVA_HOME/bin”。最后找到“Path”变量,点击“编辑”,在末尾添加“%JAVA_HOME%\bin”和“%JAVA_HOME%\jre\bin”。

2025-06-18 14:01:38 295

原创 面向对象的三大特性(封装、继承、多态)

• 定义:将数据(属性)和操作数据的方法(函数)封装在一个类中,通过访问修饰符(如public、private)控制外部对内部属性的访问。◦ 例如:手机类(Phone)封装“电池电量”属性,外部不能直接修改,只能通过“充电”“耗电”方法操作。◦ 例如:“打印”操作可作用于“文档”“图片”“表格”等不同对象,各对象自行实现打印逻辑。◦ 例如:“智能手机”继承“手机”的基本功能(打电话),并新增“拍照”“上网”等特性。◦ 减少代码冗余,形成类的层次结构(如“动物”→“哺乳动物”→“人类”)。

2025-06-18 14:00:26 1048

原创 计算机专业的学习和工作中,哪些能力最重要?

技术能力是“入场券”,逻辑与实践能力决定上限,而软技能则影响职业发展的长远性。掌握至少1-2门主流语言(如Python、Java、C++),理解数据结构(链表、树等)和算法逻辑(排序、动态规划),是解决问题的基础。理解从“需求文档”到“可运行程序”的工程化流程,例如版本控制(Git)、团队协作(敏捷开发)。开发中需与产品经理、测试人员对接,例如用通俗语言解释技术方案(非技术同事也能理解)。技术迭代极快(如AI框架、云原生技术),需持续通过文档、开源项目更新知识体系。一、核心技术能力(硬技能)

2025-06-18 13:59:25 784

原创 MBTI 视角下计算机专业的适配类型分析

• 适配点:编程时注重系统架构设计,能从全局规划代码逻辑,适合算法开发、系统设计等需要长期规划的领域。• 适配点:热衷研究编程语言原理、数据结构等底层逻辑,适合从事理论研究、编译器开发等工作。• 适配点:适合软件工程中的测试、运维等需要严格遵循流程的岗位,能精准排查代码漏洞。• 适配点:适合后端开发、数据库管理等需要长期维护和优化的工作,确保系统稳定运行。• 适配点:适合探索前沿技术(如AI、区块链),在创新项目中能提出突破性思路。• 特点:沉迷逻辑推理,喜欢拆解问题本质,享受探索未知技术。

2025-06-18 13:58:54 993

原创 Java发展历程

2023年3月21日,Java 20发布。• 早期发展与标准化(1996 - 1999年):1996年1月,Java 1.0发布,包括Java虚拟机、网页应用小程序及用户界面组件。• 特性增强与平台更名(2000 - 2009年):2002年2月,Java 1.4发布,因Compaq、Fujitsu等公司参与而迅速发展。2004年9月30日,Java 5发布,加入泛型、枚举、注解等新特性,版本号改为5.0。1995年1月,Oak因商标问题改名为Java,5月23日,Java与HotJava正式发布。

2025-05-28 13:45:31 736

原创 Java的学习思路

• 熟悉语法基础:掌握变量、数据类型、运算符、控制语句、方法等基础语法,可通过《Effective Java》等书籍系统学习。• 核心类库:学习Java核心类库,如字符串处理、集合框架、IO流、多线程等,了解其原理和用法。• Web开发框架:如Spring框架,学习其IOC、AOP等核心概念,以及如何构建Web应用。• 自主项目实践:结合自身兴趣和需求,开发小型项目,如Web应用、桌面应用等,将知识综合运用。• 面向对象编程:深入理解类、对象、封装、继承、多态等概念,学会用面向对象思维设计程序。

2025-05-28 13:43:56 438

原创 在人工智能领域,Java和Python的开发效率如何?

例如,用Python实现一个简单的线性回归模型,借助Scikit - learn库,几行代码即可完成。• Java:虽然Java的面向对象特性有助于代码的组织和管理,但由于语法较为复杂,在维护大型人工智能项目时,可能会增加理解和修改代码的难度。• Python:在开发过程中,尤其是在进行模型试验和迭代时,Python可以快速地修改和运行代码,能够快速验证新的想法和算法。• Java:由于Java的编译过程相对复杂,在开发过程中修改代码后需要重新编译和部署,这会增加开发的时间成本,降低开发效率。

2025-05-27 14:02:02 276

原创 Java和Python的应用场景有哪些不同?

• Java:凭借其强大的稳定性、可扩展性和安全性,广泛应用于企业级系统开发,如银行核心业务系统、电子商务平台、企业资源规划(ERP)系统等。• Python:是人工智能和机器学习领域的主流语言,有TensorFlow、PyTorch等深度学习框架,以及Scikit - learn等机器学习库,因其简洁的语法和丰富的库,便于快速实现算法和模型。• Java:有Hadoop、Spark等大数据处理框架,许多大数据处理的底层组件和分布式计算框架用Java实现,常用于构建大数据处理的基础设施和平台。

2025-05-27 14:01:11 398

原创 Java与其他编程语言的区别

• Java:执行效率相对C和C++ 略低,因为Java程序需要在JVM上运行,JVM的解释执行和即时编译等机制会带来一定的性能损耗,但Java的性能优化技术不断发展,在很多场景下也能满足性能要求。• C和C++:需要开发者手动分配和释放内存,使用 malloc、free、new、delete 等操作符,若内存管理不当,容易导致内存泄漏、野指针等问题。• Java:通过垃圾回收机制自动管理内存,开发者无需手动释放内存,降低了内存管理的复杂性和出错概率,但可能会有一定的性能开销。

2025-05-27 14:00:14 333

原创 关于 Java的UDP

在上述示例中,发送方将数据通过UDP发送到指定的目标地址和端口,接收方在指定端口等待接收数据,并将接收到的数据进行处理。需要注意的是,UDP不保证数据的可靠传输,可能会出现数据丢失、重复或乱序的情况,在实际应用中需要根据具体需求进行相应的处理。• DatagramPacket:表示UDP数据报,包含了要发送或接收的数据、数据的长度、目标地址和端口等信息。// 创建DatagramPacket对象,指定目标地址和端口。// 创建DatagramSocket对象,指定接收数据的端口。Java中UDP相关的类。

2025-05-27 13:59:09 552

原创 Java中this的用法

/ 使用this访问成员变量。需要注意的是,this 只能在实例方法和构造方法中使用,不能在静态方法中使用,因为静态方法不属于任何特定的对象。在一个构造方法中,可以使用 this() 来调用本类的其他构造方法,以实现构造方法的复用。在实例方法中,this 代表当前对象,可以通过 this 访问当前对象的成员变量和方法。// 使用this区分成员变量和局部变量。当成员变量与局部变量同名时,使用 this 来明确指定访问的是成员变量。this(name);可以在方法中返回 this,以便实现方法的链式调用。

2025-05-27 13:55:03 443

原创 Java 中 super的用法

• 注意:若子类构造方法未显式调用 super(),编译器会默认调用父类的 无参构造方法。System.out.println("父类变量:" + super.num);void show() { System.out.println("父类方法");• 作用:当子类 重写(覆盖)父类方法 时,用 super.方法名() 调用父类的方法。• 作用:当子类与父类有 同名成员变量 时,用 super.变量名 访问父类的变量。• 作用:在子类构造方法中,显式调用父类的 构造方法(必须位于构造方法的第一行)。

2025-05-27 13:54:28 790

原创 大学生如何学好Java

• 深入学习语法:系统学习Java的基础语法,如数据类型、控制结构、类与对象等,通过编写简单的代码片段来加深理解。• 理解面向对象编程:掌握面向对象的核心概念,如封装、继承、多态,学会用面向对象的思维分析和解决问题。• 参加校内社团:加入学校的相关技术社团或学习小组,与其他同学一起学习、讨论问题、分享学习心得和资源。• 分析优秀代码:学习开源项目或知名代码库的源代码,分析优秀的代码结构和设计模式,提高自己的编程水平。• 制定学习计划:合理安排学习时间,制定详细的学习计划,分阶段逐步掌握Java知识和技能。

2025-05-26 21:10:47 207

原创 大学计算机科学与技术就业前景

同时,由于开设该专业的学校众多,毕业生数量庞大,竞争较为激烈,只有具备扎实的专业知识、较强的实践能力和创新思维的人才,才能在就业市场中占据优势。• 企业类型丰富:毕业生可以选择到大型互联网企业、金融科技公司、软件研发企业等从事技术研发工作,也可以进入政府部门、事业单位、国有企业等从事计算机系统维护、信息化建设等工作。• 行业需求大:计算机技术广泛应用于各个领域,无论是互联网、金融、医疗、教育,还是制造业、服务业等,都需要计算机专业人才来提升效率、创新业务模式。

2025-05-26 12:08:20 592

原创 用Java编程爱心代码以及原理

同时,由于开设该专业的学校众多,毕业生数量庞大,竞争较为激烈,只有具备扎实的专业知识、较强的实践能力和创新思维的人才,才能在就业市场中占据优势。• 企业类型丰富:毕业生可以选择到大型互联网企业、金融科技公司、软件研发企业等从事技术研发工作,也可以进入政府部门、事业单位、国有企业等从事计算机系统维护、信息化建设等工作。• 行业需求大:计算机技术广泛应用于各个领域,无论是互联网、金融、医疗、教育,还是制造业、服务业等,都需要计算机专业人才来提升效率、创新业务模式。

2025-05-26 12:06:28 624

原创 Java语言特点

6. 动态性:Java程序在运行时可以动态加载类、更新类的定义,还支持反射机制,允许程序在运行时获取和操作类的信息,具有较高的灵活性和可扩展性。5. 多线程:内置对多线程的支持,提供了丰富的多线程编程API,方便开发人员编写高效的多线程程序,实现并发执行和资源共享。8. 可移植性:由于Java的跨平台性和对标准库的严格定义,Java程序在不同的硬件和操作系统平台上具有良好的可移植性。2. 面向对象:强调将问题域中的概念直接映射到程序中的对象,支持封装、继承和多态等特性,使代码更易维护和扩展。

2025-05-26 12:01:22 269

原创 关于Java关键字Char的一个细节问题

• 数组与集合:存储多个 char 可用 char[] 数组,或用 Character[] 包装类存入集合(如 List<Character>)。• 空字符不等于null:char 默认值为 \u0000(空字符,非 null,null 是对象引用的默认值)。• 基本类型:char(占 2 字节,范围:\u0000~\uffff,即 0~65535)。// 结果为 66('A'的ASCII码是65)// 对应 'A'(十进制 65)• 不要混淆大小写:char 是关键字,Char 不是(会编译报错)。

2025-05-26 11:40:56 457

原创 关于Java几个基本问题——新手入门级

• 异常分为受检异常(Checked Exception,如IO异常)和非受检异常(Unchecked Exception,如NullPointerException)。Java程序通过编译器生成与平台无关的字节码(.class文件),由各平台的**JVM(Java虚拟机)**解释执行,实现“一次编写,到处运行”。• 整数型:byte(1字节)、short(2字节)、int(4字节)、long(8字节)• 类:是对象的模板,定义属性(变量)和方法(函数)。• 字符型:char(2字节,Unicode编码)

2025-05-26 11:36:28 291

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除