Java——笔记

智能挂锁软件需求规格说明书(SRS) 智能挂锁系统SmartPadlockV1.0是一款融合蓝牙通信、指纹识别和远程控制技术的便携式安防设备。系统由设备端、移动App和云平台三部分组成,支持蓝牙配对(10米内)、指纹识别、OTP一次性密码等多种开锁方式,响应时间<1.5秒。产品采用SM2/SM4加密技术保障安全,日均20次使用下续航达180天,兼容iOS13+/Android8.0+系统。功能包括设备绑定、远程授权、开锁记录查询和OTA固件升级,符合个人信息保护法规要求,适用于仓储、快递柜等多场景应用。 阅读详情

面向对象六大原则

  1. 单一职责:一个类应该只做一件事;
  2. 开放封闭:尽量是拓展原来的代码,而不是修改原来的代码;
  3. 里氏替换:子类可以拓展父类的功能,但不能改变父类的功能;
  4. 依赖倒置:指模块间的依赖是通过抽象来发生的,实现类之间不直接发生依赖关系,其依赖关系是通过接口来实现的,面向接口编程;
  5. 接口分离:客户端不应该依赖它不需要的接口;没用的接口应该分离出去;
  6. 迪米特:只与直接的朋友通信;

总结:每当需求变化的时候,我们利用这些原则来使我们的代码改动量最小,而且所造成的影响也是最小的。

内部类

成员内部类:类里边没有修饰符修饰的类,可访问所有变量和方法,外部类对象.new 内部类();

局部内部类:方法内定义的类,非静态方法的局部类可访问外部类的所有变量和方法,静态方法的局部类之可以访问外部类的静态变量和静态方法;

静态内部类:在类里边用static修饰的类,可访问外部类的静态变量,不可访问非静态变量;

匿名内部类:必须实现接口或者继承抽象类,不能在类里边定义静态的变量或者方法,所在方法的形参要被使用的时候必须加上final,因为局部变量存储在栈中,用完非final的局部变量就会被销毁,但是局部类中局部变量的引用还存在,调用时候会出异常,加了final就可以是局部内部类使用的变量和外部的局部变量区分开。

好处:

  • 一个内部类对象可以访问创建它的外部类对象的内容,包括私有数据;
  • 内部类不为同一包的其他类所见,具有很好的封装性;
  • 内部类有效实现了“多重继承”,优化 java 单继承的缺陷;
  • 匿名内部类可以很方便的定义回调;

==与equals的区别

==比较的是地址,equals在没有重写的情况下也是比较地址,有重写的情况下根据重写的逻辑来。

重写equals必须重写hashCode()方法,如果不重写,那么每个对象的hashcode都不相同,在进行集合操作的时候,或出错。

java和javax

没什么区别。

包:

lang,io,nio,net,util,sql

IO

Reader

Writer

InputStream

OuputStream

  • 字节流操作的基本单元为字节;字符流操作的基本单元为Unicode码元。
  • 字节流默认不使用缓冲区;字符流使用缓冲区。
  • 字节流通常用于处理二进制数据,实际上它可以处理任意类型的数据,但它不支持直接写入或读取Unicode码元;字符流通常处理文本数据,它支持写入及读取Unicode码元。

BIO

NIO

AIO(NIO2)

反射

概念:运行时创建对象,并能调用所有方法和属性

优点:提高代码灵活度;

缺点:性能相比运行编译好的代码比较慢;

应用: jdbc连接的时候;spring中Bean的装载;

获取方式:类名.class;Class.forName();Obj.getClass();通过类加载器.loadClass();

常用API

String

Date

集合

List

ArrayList:底层是Object[],默认容量是10,每次扩容为原来的1.5倍,每次add的时候校验扩容;

LinkedArrayList:底层是双向链表,默认容量0;

CopyOnWriteArrayList:底层是Object[],默认0,每次扩容加1,里边一个可重入锁;

Vector:底层是Object[],默认容量10,每次扩容为原来的2倍,每次add是校验扩容,方法加锁;

Stack:继承Vector;

Map

HashMap:底层是个数组+链表+红黑树,默认容量是16,扩容因子为0.75倍,链表大于等于8时变为红黑树,小于等于6时又变回链表;

LinkedHashMap:

HashTable:

TreeMap:

ConcurrentHashMap:

ConcurrentSkipListMap:

Set

HashSet:

LinkedHashSet:

TreeSet:

CopyOnWriteArraySet:

ConcurrentSkipListSet:

可以使用 Collections. unmodifiableCollection(Collection c) 方法来创建一个只读集合,这样改变集合的任何操作都会抛出 Java. lang. UnsupportedOperationException 异常。

快速失败机制:遍历集合的同时集合的大小发生了变化,多线程环境下;

迭代器:使用可以进行遍历删除;

遍历:for(在集合外部维护一个计数器,然后依次读取每一个位置的元素,当读取到最后一个元素后停止),iterator,foreach(内部采用iterator);支持 Random Access 的列表可用 for 循环遍历,否则建议用 Iterator 或 foreach 遍历。

ArrayList 不是线程安全的,如果遇到多线程场景,可以通过 Collections 的 synchronizedList 方法将其转换成线程安全的容器后再使用。List<String> synchronizedList = Collections.synchronizedList(list); synchronizedList.add("aaa"); synchronizedList.add("bbb");

异常

JVM 是如何处理异常的?

并发

死锁的条件

  • 互斥条件:线程(进程)对于所分配到的资源具有排它性,即一个资源只能被一个线程(进程)占用,直到被该线程(进程)释放
  • 请求与保持条件:一个线程(进程)因请求被占用资源而发生阻塞时,对已获得的资源保持不放。
  • 不剥夺条件:线程(进程)已获得的资源在末使用完之前不能被其他线程强行剥夺,只有自己使用完毕后才释放资源。
  • 循环等待条件:当发生死锁时,所等待的线程(进程)必定会形成一个环路(类似于死循环),造成永久阻塞

Linux查看资源使用情况:

为什么线程通信的方法 wait(), notify()和 notifyAll()被定义在 Object 类里

为什么 Thread 类的 sleep()和 yield ()方法是静态的

jvm

jvm各大区域的作用

垃圾回收算法

类加载过程

调优工具

mybatis

分页插件

执行原理

一二级缓存

Redis

删除策略:定时删除,主动删除,惰性删除

持久化方式:rdb,aof

集群搭建:

KafKa

Mysql

Spring

SpringMVC

Spring Boot

Spring Cloud

Dubbo

Mycat

es

自私兽群优化器(SHO)详解:从生物本能到智能优化 自私兽群优化器(SHO)是一种受动物群体自私行为启发的智能优化算法。该算法模拟动物在捕食威胁下的两种行为:聚集行为(全局搜索)和自私行为(局部搜索),将优化问题的解空间映射为生存环境,候选解视为猎物个体。SHO通过安全性评估将猎物分为安全、危险和高危三类,分别采用不同的位置更新策略,并引入捕食者角色增加选择压力。相比传统优化算法,SHO具有无需梯度信息、自适应平衡探索与开发、参数简单等优势,特别适合高维复杂和多模态优化问题。算法通过马尔可夫链理论保证收敛性,已在工程设计和数据挖掘等领域展现出良好性能。 阅读详情

相关推荐

OpenCL编译环境配置

在 Linux 系统上配置 OpenCL 开发环境需要安装适当的驱动、运行时和开发工具。

深之JohnChen的专栏 2001

java该怎么做笔记_java学习笔记整理,如何整理java笔记?

俗话说:“好记性不如烂笔头”,不得不说,这句话在大部分时候都是适用的。特别是刚刚入门学习java的朋友,是不是也觉得整理学习笔记是一件麻烦的事?下面就带大家来看看到底应该如何整理java笔记比较好呢?学习笔记切记过于复杂冗余,简单明了为上,可以选择一款比较方便的专门记录学习笔记的App,分门别类的记录为上。示例目录:基本概念篇操作系统中 heap 和 stack 的区别1.什么是基于注解的切面实现...

weixin_29358723的博客 1299

打穿内网之Vulntarget-a靶场实战记录

内容包括:通达OA未授权上传+文件包含RCE、Redis未授权写马、ms17-010永恒之蓝、代理转发内网跳板、CVE-2020-1472 域控杀器Zerologon、wmiexec/smbexec横向移动、cobalt strike与msf的shell传递

tpaer的博客 3031

学java怎么做笔记?教大家整理java笔记的一些方法

许多开始学Java编程的朋友,都是跟着视频学习的,知道要记笔记,但又不知如何下手。其实笔记主要的还是记框架以及自己能感觉到不懂得地方方便巩固加深印象,笔记不要记得密密麻麻的看着就让人感觉头疼,学习编程类的课程还是需要多敲代码,让自己形成大脑记忆,在写到难点bug的时候大脑自动反应解决困难。 学java怎么做笔记? 俗话说:“好记性不如烂笔头”,不得不说,这句话在大部分时候都是适用的。特别是刚刚入门学习java的朋友,是不是也觉得整理学习笔记是一件麻烦的事?下面就带大家来看看到底应该如何整理java笔

suikui的博客 2166

告别理论纠结!用ADS和Sigrity玩转电源完整性:从PDN阻抗优化到芯片供电仿真全流程

本文详细介绍了如何利用ADS和Sigrity工具进行电源完整性(PI)分析,从PDN阻抗优化到芯片供电仿真的全流程。通过频域、直流和时域分析,工程师可以精确评估电源网络性能,优化设计以避免电压波动和系统失效。文章还提供了ADS和Sigrity PowerDC的实战操作指南,帮助读者掌握现代PI设计的核心技术。

weixin_33749242的博客 310

免杀思路总结

免杀思路总结 1.免杀技术简介 1.免杀的重要性 2.免杀的难度 3.杀毒软件的排行 国外 国内 1 、Bitdefender 1、360 2 、Norton 360 2、智量安全(没测过,据说很厉害) 3 、Kaspersky 3、火绒安全 4 、Webroot 4、金山独霸 5 、Trend Micro 5

LiBai'S BLOG 1万+

宋红康Java基础笔记

参考b站Java视频:https://www.bilibili.com/video/BV1ny4y1Y7CW 同时,主要是对这位小伙伴笔记的一个整理https://blog.youkuaiyun.com/PorkBird/article/details/113666542。 利用ProcessOn https://www.processon.com/outline/60fbd01c0e3e7423a3277348 ...

foreverlove1999的博客 4623

Vue3 - 详解实现网站接入钉钉扫码登录功能,钉钉授权生成登录二维码用户用手机扫描二维码登陆,支持弹框式、浏览器单独新开页显示,钉钉扫描二维码登录详细流程及示例代码,最新vue集成钉钉扫码授权登录!

vue3,nuxt3,钉钉,扫码登录,vue3钉钉扫码登陆,钉钉授权第三方WEB网站扫码登录功能,钉钉扫码登录第三方网站,单点登录,二维码不显示,报错,扫了没反应,出错,vue3钉钉扫码登录,内嵌,获取个人信息,pc网页钉钉登录,钉钉扫码登录怎么新开一页,跳页显示二维码,内嵌登录二维码,iframe新页面弹出,弹出一个小窗口显示登录二维码,登录报错,扫码没反应,解决手机点登录报错没反应,官方文档,手机扫描钉钉二维码登录网站,页面弹出一个小窗口而不是打开一个页面,vue3中使用iframe实现另开小窗口扫码登

🏆 前端领域优质创作者 3694

Java笔记资源下载

Java笔记资源下载 去发现同类优质开源项目:https://gitcode.com/ 此资源文件为一份详尽的Java学习笔记,涵盖了Java编程语言的基础知识和核心概念。文件名为“java笔记.docx”,以下是该文件的详细描述: 变量声明:在Java中,每个变量都需要先进行声明,然后才能使用。 数组使用:Java中的数组是一个对象,通过使用new关键字进行创建和初始化。 字符串操作:Java...

gitblog_06773的博客 685

【OpenFOAM】-olaFlow-算例6- waveFloatingObject

波浪作用下的浮体的刚体运动,属于流固耦合(FSI)问题

ou_no的博客 3537

睿抗机器人魔力元宝在完成任务过程中如何使机械臂先到达白色盒子上方而不是先到达工作台?

🏆 本文收录于《全栈Bug调优(实战版)》专栏,致力于分享我在项目实战过程中遇到的各类Bug及其原因,并提供切实有效的解决方案。无论你是初学者还是经验丰富的开发者,本文将为你指引出一条更高效的Bug修复之路,助你早日登顶,迈向财富自由的梦想🚀!同时,欢迎大家关注、收藏、订阅本专栏,更多精彩内容正在持续更新中。让我们一起进步,Up!Up!Up!    备注: 部分问题/难题源自互联网,经过精心筛选和整理,结合数位十多年大厂实战经验资深大佬经验总结所得,数条可行方案供所需之人参考。

**My Coding Family** 1378

【Java超详细的学习笔记】Java超详细的学习笔记,适合小白入门,Java语法学习,Java开发学习笔记,Java入门学习笔记

【Java超详细的学习笔记】Java超详细的学习笔记,适合小白入门,Java语法学习,Java开发学习笔记,Java入门学习笔记

m0_67844671的博客 6090

RK3568平台(网络篇)WIFI模块RTL8821CU调试

RTL8821CU是瑞昱半导体推出的usb接口的wifi,下面的教程将介绍如何将RTL8821CU移植到rk3588的平台上。移植usb wifi需要修改的文件Android hal层需要修改的文件//kernel需要修改的文件kernel/arch/arm64/boot/dts/rockchip/rk3399-tve1030g.dtsi //除去板上的sdio的wifi。

weixin_49303682的博客 3904

java基础所有笔记

java培训时的基础笔记,评论点击链接下载即可获得链接添加链接描述

sansui77088的博客 237

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

Java成长笔记

https://blog.youkuaiyun.com/weixin_46785731/article/details/108219741 前言 关于技术人如何成长的问题,一直以来都备受关注,因为程序员职业发展很快,即使是相同起点的人,经过几年的工作或学习,会迅速拉开极大的差距,所以技术人保持学习,提升自己,才能够扛得住不断上赶的后浪,也不至于被“拍死”在沙滩上。 近日,经过一朋友的透露,Alibaba也首发了一份限量的“Java成长笔记”,里面记载的知识点非常齐全,看完之后才知道,差距真的不止一点点! J

yygr的博客 541

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

Java代码生成手写笔记

在家上网课时老师会不会需要你拍照上传你的笔记呢? 看完本文章让你告别手写笔记 话不多说,先来看一下效果图 是不是跟手写的一样 接下来直接上代码,由于没有啥技术含量,无非就是给图片添加水印 代码我就不再细说了 有兴趣的朋友可以自己看一下源码 主函数和实现方法不在同一个class,注意!! 主函数如下 起始的bg.jpg和biji.txt和ss2.ttf文件我会上传在笔记生成文件里,包括源码 import come.MainFuncation.WorkWrite; import java.awt.*; imp

weixin_46177988的博客 1793

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

【java】java学习笔记之java常用类

如下图所示为笔者总结的java常用类学习笔记,其中,附带有代码示例(未展开),方便理解记忆。需要源文件的请到我的资源中下载,下载地址:https://download.youkuaiyun.com/download/guaishounan/11451504 ...

guaishounan的博客 4128

Java实用学习方法,笔记工具OneNote使用讲解

俗话说:“好记性不如烂笔头”,不得不说,这句话在大部分时候都是适用的。特别是刚入门学习java的小白们,记笔记是非常实用的学习方法也可直接观看视频学习如何使用笔记工具,b站上动力节点老杜最新Java17版教程,从零基础出发,讲解Java编程的基础知识和实践技巧,涵盖了Java编程的方方面面。

2301_78369638的博客 736

JAVA学习笔记

JAVA学习笔记

lizzzza的博客 1704

【java】java学习笔记之java 进阶

如下图所示为笔者总结的java进阶学习笔记,其中,附带有代码示例(未展开),方便理解记忆。需要源文件的请到我的资源中下载,下载地址:https://download.youkuaiyun.com/download/guaishounan/11573212 ...

guaishounan的博客 6168

学java怎么做笔记?教大家整理java笔记的一些方法,2024年网易Java岗面试必问

手绘了下图所示的kafka知识大纲流程图(xmind文件不能上传,导出图片展现),但都可提供源文件给每位爱学习的朋友63065)]既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新如果你觉得这些内容对你有帮助,可以添加V获取:vip1024b (备注Java)

2401_84003656的博客 911

狂神的Java笔记

狂神的linux笔记

花开的博客 854

JAVA集合类简要笔记

转载一下

weixin_51416432的博客 187

循序渐进学Java笔记合集

本文分享了韩顺平Java课程的学习笔记整理情况,包含从Chapter01到Chapter23的完整章节内容,所有代码和笔记已上传至GitHub仓库(https://github.com/zzhow0/Notes_on_the_Course_of_Han_Shunping_Gradually_Learning_Java)。笔记从2024年1月开始持续更新,目前已整理完成面向对象编程、集合、多线程、IO流、网络编程等核心内容,并包含房屋出租系统、坦克大战等实战项目。 写于2024/02/05

ZZHow Blog 838

java详细笔记

java详细笔记

iteye_14174的博客 133

java云笔记_java版云笔记(一)

项目简介笔记管理系统,用户可以管理笔记信息,可以查看其他用户分享的笔记.主要功能如下用户模块:登录、注册、修改密码、退出笔记本模块:创建、删除、更新、查看笔记模块:创建、删除、更新、查看、转移分享和收藏模块:分享、收藏、查看、搜索分享回收站模块:查看、彻底删除、恢复活动模块:查看活动、参加活动等项目整体设计使用的主要技术jQuery、Ajax、SpringMVC、IOC、AOP、MyBatisjQ...

weixin_28807529的博客 662
上一篇: MySQL——索引和执行计划和慢查询
下一篇: Java——日志框架
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值