Java从放弃到继续放弃

别再只用GPS了!用Android手机传感器实现室内步行轨迹记录(避坑指南) 本文详细介绍了如何利用Android手机传感器(如加速度计、陀螺仪和磁力计)实现室内步行轨迹记录,克服GPS在室内的局限性。通过传感器数据采集、步态检测、航向估计和轨迹绘制等步骤,结合避坑指南和优化技巧,帮助开发者高效构建室内定位应用。 阅读详情

Java基础

Java和C++的区别

https://www.yuque.com/hollis666/rvd7xq/ugbv46
Java和C++都是面向对象的语言,但是Java是解释语言,C++是编译语言。
JVM使得Java是平台无关的,跨平台开发很方便。
Java是自动管理内存和垃圾回收的,C++需要手动回收。

面向过程和面向对象的区别

https://www.yuque.com/hollis666/rvd7xq/sy3eyr#II5Ef
面向过程是将问题一步一步的进行解决。
面向对象是将问题的步骤抽象,形成一个对象,直接使用对象去解决问题。

面向对象五大原则

https://www.yuque.com/hollis666/rvd7xq/sy3eyr#II5Ef
https://www.bilibili.com/video/BV1Wc411s7tT/?spm_id_from=333.1007.top_right_bar_window_history.content.click&vd_source=48c4bea3923e67ebcd204cf8ceac86e1

  1. 单一职责原则:一个类负责一个职责。
  2. 依赖倒置原则:功能尽可能通过实现接口的方式实现。
  3. 开放封闭原则:尽量不对写好的功能进行修改,只做增加新功能。
  4. 接口隔离原则:接口的功能尽可能更加的解耦。
  5. liskov替换原则:子类不要去改动父类的方法,只在重写的方法上进行增加即可。
    其实五大原则的中心要义就是说,我们每个功能应该更加的解耦,对于业务类要通过实现接口的方式实现,子类重写父类的函数时要保留父类函数的功能,写过的功能要尽可能的保证不要再进行修改。

Java为什么不支持多继承

https://www.yuque.com/hollis666/rvd7xq/uegateiyswx40n33
C++支持多继承性,但是这样会产生菱形继承的问题。所以Java不支持多继承。
但是Java支持多实现,Java8之后,接口中可以实现带函数体的默认方法,默认方法直接继承不需要重写,对于实现了两个接口的类,如果两个接口中的默认方法的方法名相同,那么该类就必须重写这个方法。

String str=new String(“hollis”)创建了几个对象?

https://www.yuque.com/hollis666/rvd7xq/em12e4rgw6suv75o
一个或者两个

泛型有什么好处?

https://www.yuque.com/hollis666/rvd7xq/syhevb
方便:如果没有泛型对于每个类型的List都需要写一个接口。
安全:没有泛型的时候,对于类型的转换是在运行时检查的,如果错误就直接GC。有了泛型之后,在编译的时候检验就安全了很多。

类型擦除是什么?

https://www.yuque.com/hollis666/rvd7xq/qcn00m
就是泛型的不同表达,在编译的时候都只会编译成一份文件。
编译器编译泛型代码的时候会编译成普通java字节码。

并发编程

为什么需要多线程?

由于硬件的发展,CPU的核数增多,如果仍然使用单线程对CPU资源会造成浪费。同时,单线程也会出现阻塞的问题。所以,选择向多线程转变。
多线程的使用使得程序能够并行计算,提高计算速度。也能够异步执行,提供更快的响应速度。

什么是Java多线程并发不安全?

多线程并发不安全是指,由于多个线程并发执行可能导致执行过程中,多个线程抢占一个资源的时候导致的错误。
而Java多线程并发不安全的本质是由于线程本身不具有可见性、原子性、有序性。
而Java对于不安全问题的解决方法是,提供了JMM(Java内存模型)来提供按需禁止缓存和编译优化的方法。
这些方法包括:

  • volatile、synchronized和final三个关键字
  • Happens-Before规则

正确利用这些JMM方法,就可以有效的解决上述的不安全问题。

减少多线程的上下文切换
常用的减少上下文切换的执行的方法有:

  • 无锁并发编程:多线程竞争锁时,会引起上下文切换,所以多线程处理数据时,可以用一些方法来避免使用锁。如将数据的ID按照Hash算法取模分段,不同的线程处理不同段的数据。
  • CAS算法:Java的Atomic包使用CAS算法来更新数据,而不需要加锁
  • 使用最少线程:避免创建不需要的线程,比如任务很少,但是创建了很多线程来处理,这样会造成大量线程都处于等待状态。

线程池的主要作用

线程池的设计主要是为了管理线程,为了让用户不需要再关系线程的创建和销毁,只需要使用线程池中的线程即可。
同时线程池的出现也为性能的提升做出了很多贡献:

  1. 降低了资源的消耗:不会频繁的创建、销毁线程,线程池中的线程随取随用。
  2. 提高了相应速度:因为线程是已经创建好的线程,所以减少了线程创建的时间。
  3. 提高了线程的可管理性:线程是稀缺资源不能无限制的创建,使用线程池使得线程的数量是可控的。即=
  4. 提供了更强大的功能:线程池还提供了一些功能,比如定时执行、延迟执行、线程存活时间等。

线程池的实现

线程池的实现类是 ThreadPoolExecutor,它的继承性UML类图如下:

在这里插入图片描述
顶层接口Executor提供了一种思想:将任务提交和任务执行进行解耦,用户无需关心如何创建线程,如何调度线程来执行任务,用户只需提供Runnable对象,将任务的运行逻辑提交到执行器中,由Executor框架完成线程的调配和任务的执行部分。

ExecutorSevice增加了一些能力:

  1. 扩充执行任务的能力,补充可以为一个或一批异步任务生成Future的方法
  2. 提供管控线程池的方法,比如停止线程池的运行。

AbstractExecutorService将执行任务的流程串联了起来,保证下层的实现只需关注一个执行任务的方法即可。

ThreadPoolExecutor将会一方面维护自身的生命周期,另一方面同时管理线程和任务,是两者良好的结合从而执行并行任务。

to be continue2024年6月9日10:20:02

Fusion 360嵌入式外壳建模实战:从草图到可装配结构 参数化三维建模是现代电子结构设计的核心能力,其本质是通过几何约束与特征驱动实现设计意图的精确表达和快速迭代。Fusion 360作为集成CAD/CAM/CAE的云端平台,以时间轴驱动的参数化工作流、基于基准面的草图约束机制和面向制造的特征操作逻辑,显著提升了嵌入式硬件的结构验证效率。该技术价值在于支持工程师在无专业机械背景前提下,独立完成PCB适配、散热布局、接口开孔与装配干涉检查等关键任务,广泛应用于3D打印原型、CNC加工外壳及IoT终端结构开发。本文以ESP32冰箱监控终端为实例,详解从基准定义、草图 阅读详情

相关推荐

Flutter版本升级踩坑实录:从3.27到3.35,我们是如何修复Impeller引擎导致的花屏问题的?

本文详细记录了团队在Flutter版本升级过程中遇到的Impeller引擎导致的花屏问题及解决方案。从问题诊断到最终升级至稳定版3.35,文章分享了排查步骤、升级策略和性能对比数据,为开发者提供了实用的参考经验。

weixin_26854555的博客 503

官方文档&大佬博客

.

张紫娃的博客 533

衡山派Luban-Lite系统SDIO无线网络配置实战:以D133CBV-QFN88开发板与RTL8189模组为例

本文详细介绍了在衡山派D133CBV-QFN88开发板上,为Luban-Lite系统配置SDIO无线网络的完整实战流程。通过配置SDMC接口、RTL8189 Wi-Fi驱动、lwIP协议栈及内核参数,并解决编译分区问题,最终实现Wi-Fi网络连接与测试,为嵌入式设备联网提供清晰指导。

weixin_35677363的博客 267

Java8 Stream学习笔记

在Java中,集合和数组是我们经常会用到的数据结构,需要经常对他们做增、删、改、查、聚合、统计、过滤等操作。相比之下,关系型数据库中也同样有这些操作,但是在Java 8之前,集合和数组的处理并不是很便捷。...

weixin_52894047的博客 3302

一文读懂 AI 模型训练流程

AI模型训练流程可分为五个关键步骤:首先进行数据准备,包括收集、清洗、标注和增强数据;其次选择合适的模型架构并搭建神经网络;然后通过前向传播、损失计算和反向传播进行模型训练;接着用验证集评估模型性能,并调整超参数;最后在测试集上检验模型泛化能力。整个过程需要精心设计每个环节,才能获得性能优异的AI模型。

牧晨加油站 1480

电机驱动和电源等大电流设计中的并联 MOSFET设计

在电机驱动等应用中,半桥拓扑(通常为 3 相)用于生成在电机中产生正扭矩或负扭矩的交流电源信号。想要更高的输出电流能力,只有通过并联形成每个功能开关的 MOSFET,才能实现高输出电流。当多个功率 MOSFET 并联以增加系统整体电流能力容量时,通常假设电流在并联器件之间均等分配或均等共享。然而,在并联 MOSFET 时,需要考虑并联器件之间的电流分配。PCB 布局的若干特性和特定的MOSFET 参数会影响这种分配,并在参数不匹配或布局不对称时导致均流不平衡。

小幽余生不加糖 2487

java从入门到放弃再到继续的过程

1 IO流概述和分类【理解】 IO流介绍 IO:输入/输出(Input/Output) 流:是一种抽象概念,是对数据传输的总称。也就是说数据在设备间的传输称为流,流的本质是数据传输 IO流就是用来处理设备间数据传输问题的。常见的应用:文件复制;文件上传;文件下载 IO流的分类 按...

xiaoyaGrace的博客 258

【WRF数据准备】土地利用数据-MODIS MCD12Q1数据下载及制备

【WRF数据准备】MODIS静态地理数据下载及制备

WW、forever的博客 3413

Java编程入门与应用 P80——例3-24(小明参加一个1000米的长跑比赛每跑完一圈,教练就会问他是否要坚持下去,如果回答yes,则继续跑,否则表示放弃。)

Java编程入门与应用 P80——例3-24 小明参加一个1000米的长跑比赛,在100米的跑道上,他循环地跑着,每跑一圈,剩余的路程就会减去100米,要跑的圈数就是循环的次数。但是,在每跑完一圈, 教练就会问他是否要坚持下去,如果回答yes,则继续跑,否则表示放弃。 import java.util.Scanner; /** * Java编程入门与应用 P80——例3-24 * 小明参加一个1000米的长跑比赛,在100米的跑道上,他循环地跑着,每跑一圈,剩余的路程就会减去100米,要跑的圈数就.

乖珑珑的博客 841

《HiVT: Hierarchical Vector Transformer for Multi-Agent Motion Prediction》论文阅读之HiVT

目录摘要1.介绍2.相关工作3.方法3.1. 总体框架3.2 场景表示 3.3 分层向量Transformer3.3.1 局部编码器3.3.2 全局交互模块3.3.3 多模态未来解码器3.4 训练4.实验4.1 实验设置4.2 消融研究 4.3. 结果5.结论 准确预测周围交通参与者的未来运动对于自动驾驶车辆的安全至关重要。最近,矢量化方法由于能够捕捉交通场景中的复杂交互而在运动预测领域占据主导地位。然而,现有的方法忽略了问题的对称性并且受到昂贵的计算成本的影响,面临着在不牺牲预测性能的情况

Gavinmiaoc的博客 3340

SQL面试题——最大连续登陆问题

最大连续登陆是我们计算比较常用的指标,我们可以将其当成一个经典的SQL模型,后面我们也会陆续总结出其他的模型,你还知道其他的比较经典的SQL 吗?欢迎分享,或者你还知道其他的关于计算连续的指标?最大连续登陆重要的是计算思想,最大连续才是关键,登陆只是一个场景,要学会举一反三。

9012

疯狂软件对Oracle放弃Java EE的看法

疯狂软件对Oracle放弃Java EE的看法近日网络上出现了一些关于Oracle将要放弃Java EE的说法,在Java行业引起不小的关注,甚至有些人开始担心Java会不会就此消亡,但事实上这不过是杞人忧天,《疯狂Java讲义》图书李刚根据多年来Java行业的从业经验,对此提出以下几点分析抛砖引玉,供广大Java从业者参考。第一点:Oracle根本没有力量左右Java发展自从Java发展壮大以来...

weixin_34293059的博客 86

基于ESP32的智能停车场管理系统开发

智能停车场管理系统通过引入物联网(IoT)技术,实现对停车场内车辆的实时监控、空闲车位的管理、车辆的入场与出场控制等功能,大大提高了停车场的利用率和管理效率。通过集成物联网技术、云平台以及先进的传感器和执行器,系统不仅能实时监控停车场的车位状态,还能提供更好的用户体验。本文将介绍如何基于ESP32开发一个智能停车场管理系统,涵盖系统架构、硬件选择、软件开发以及最新技术的应用,帮助开发者实现高效的智能停车管理。ESP32的代码主要负责处理车位传感器的数据,控制LED指示灯的状态,以及与云平台进行数据交互。

2201_76125393的博客 912

Java编程感想

时间过的飞快,转眼五月就已经过了一半了,而最重要的莫过于我的Java感觉还是一窍不通,说老实话,我现在有点心慌,按照我这个学习理解速度的话,我怕我的期末考试会栽大跟头,其实最主要的,还是身为一个以后要成为程序猿的人来说,我似乎不太适合这个方面。但是我不想就此放弃,我常常对自己说,所有东西都是这样,不可能一蹴而就,我现在虽然没有学多好但不代表我以后就学不好,更不代表我花的精力再多一点就学不好。我现在...

qq_44759824的博客 221

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

wait放弃对象锁_java多线程设计wait/notify机制 (synchronized与对象锁)

synchronized(obj) {while(!condition) {obj.wait();}obj.doSomething();}当线程A获得了obj锁后,发现条件condition不满足,无法继续下一处理,于是线程A就wait() , 放弃对象锁.之后在另一线程B中,如果B更改了某些条件,使得线程A的condition条件满足了,就可以唤醒线程A:synchronized(obj) {c...

weixin_29029169的博客 345

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

java,:-C

回头看看,学习java也一段时间了,但是现在还谁什么都不会。有点后悔了,是不是错了?现在继续吧,觉得还要学很多,享受更多的摧残,放弃吧,觉得自己都付出那么多了。有种一个人站在车流穿梭的道路中间的感觉,害怕,担心,慌张!工作更是可望不可及。

zq620901的专栏 491

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

java干不下去了_Java末日临近?穷途末路还是绝处逢生?

​Java末日临近? 穷途末路还是绝处逢生? 记得很久之前,从Java诞生之日起,到Java语言大行其道,再到其他语言群雄并起的时候都在讨论Java是不是快要完蛋啦?Java什么时候被淘汰?这里先探讨一个相关的问题,最近看了一个问题问Java跟J2EE的区别。Java对J2EE:Java是编程语言, J2EE是一个架构, 架构的主要作用就是让你的编程工作变得更加容易, 它包含应用程序接口,模板,程...

weixin_39552304的博客 432

自学java成功率高吗,为什么自学Java编程成功率那么低?

原标题:为什么自学Java编程成功率那么低?自学Java编程平均成功率只有24%。其中,大部分自学连Java基础都还没有掌握好,便放弃了。为什么会如此呢?难道自学就真的那么难?实际上,自学最大的问题无外乎没有学习氛围、没有专业辅导,因为没有学习氛围,很容易三天打鱼两天晒网,学着学着没有了积极性,在加上没有老师辅导,遇到难题,不知道如何解决,结果多次受到“挫折”后,觉得自学很难,丧失了信心,结果半途...

weixin_36163101的博客 3113

Oracle收购SUN后,MySQL会不会消失?Oracle-Java时代的开始,关注六大焦点的命运!

Oracle收购SUN后,MySQL会不会消失?收藏   我的个人观点,MySQL不会消失,根据规律,此类东西一旦消失,会很快出现 1 社区版,一部分好事的会继续研发 2 新产品,重新包装一个新公司出来。 而且根据Oracle和MySQL的定位,Oracle数据库主要面向大中型企业,重点在一些有实力的公司,而MySQL主要在一些网站和中小企业里,毕竟免费的,且性能对于他们

vbloveshllm的专栏 1210

要么死,要么Java

面试的时候人家问我为什么要搞技术 这几天我也在想这个问题 是不是真的要走技术路线 今天试着看看招聘网站上的电商类职位,只有一个感觉就是恶心 淘宝店深深的伤了我的心,一个人自己的店铺都开不好,还能去帮别人打理电商吗 就像自己的小孩养死了,再去给别人的小孩做保姆吗 我做不到 此生不会再碰电商 要么死,要么出去上班搞java 找不到java的工作我就在家里死宅一辈子

浣花溪边 777

Java 路

接触Java 也有一段时间了,真是困难重重啊!!!!说实话有时候很沮丧的,语言的话真的有很多规则,在编译一个很简单的程序结果一堆错误,真是被吓到了,前面的都还好理解,到后面的真的晕了,但不会放弃的,,

skydar的专栏 717

Java实习感悟

如题,这是一篇随笔,与技术无关 本人此时大四未毕业,由于大三没有意识到就业的困难于是乎大四的秋招直接就放弃了,到2021年年后为止努力复习JavaSE、了解Java集合类,手写Java多线程案例,看spring源码,学会使用mybatis和hibernate,复习Mysql的语句,了解redis如何工作…… 上面都属于发牢骚,因为在我投了几十家招实习生的公司后给我回音的只有几家,最后招我进去的公司面试岗位是Java实习生,面试题问的是Java集合、spring和数据库,最后到目前为止干了不到一个星期,全部做

Joan_of_arc_Alter的博客 369

java入门第二周之一些小事

java刚开始的心得

Keycel的博客 113

你好Java!

新同学报道

qq_43698881的博客 303

从设计走上程序员之路

从自己接触电脑开始/ 莫名对编程有着浓厚的兴趣/ 但是种种原因/ 让自己选择了设计专业/ 其实也不算是什么专业/ 就是经过培训班出来的那种/ 由于不是当地户口/ 也没有继续升学/ 16岁的我走上了设计之路(PS CDR)/ 其中的艰辛可想而知/ 在设计圈中经过四年多的磨练/ 积累了点经验/ 09年自学了一年的FLASH+AS+DWR/ 自那之后/ 2010年成功的上线了...

babh11的博客 227

java中yield 和join的作用

1.yeild作用:当前线程从运行状态变为可执行状态,放弃当前cpu的资源,将它让给其他任务,包括自己,去占用cpu的执行时间,放弃的时间不确定,有可能刚刚放弃,马上又获得cpu的时间片。 只能使同优先级或者高优先级的线程得到执行机会。 cpu会从众多的可执行态里选择,也就是说,当前也就是刚刚的那个线程还是有可能会被再次执行到的,并不是说一定会执行其他线程而该线程在下一次中不会执行到了。 2...

健康平安的活着的专栏 1657
上一篇: Git从入门到放弃
下一篇: LeetCode esay mid 记录
Camellia0212
博客等级 码龄6年 113粉丝 69原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值