自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Java并发编程中的原子类总结

当多个线程使用CAS操作一个变量是,只有一个线程会成功,并成功更新,其余会失败。但是,因为atomicInteger借助了UnSafe提供的CAS操作能够保证数据更新的时候是线程安全的,并且由于CAS是采用乐观锁策略,因此,这种数据更新的方法也具有高效性。Unsafe类在sun.misc包下,Unsafer类提供了一些底层操作,atomic包下的原子操作类的也主要是通过Unsafe类提供的compareAndSwapInt,compareAndSwapLong等一系列提供CAS操作的方法来进行实现。

2025-01-12 17:20:30 695

原创 Java并发编程 - 可见性、原子性、有序性 & Java内存模型如何解决可见性、有序性

Java内存模型的主要目标是定义程序中变量的访问规则。即在虚拟机中将变量存储到主内存或者将变量从主内存取出这样的底层细节。主内存:java虚拟机规定所有的变量(不是程序中的变量)都必须在主内存中产生,为了方便理解,可以认为是堆区。可以与前面说的物理机的主内存相比,只不过物理机的主内存是整个机器的内存,而虚拟机的主内存是虚拟机内存中的一部分。工作内存:java虚拟机中每个线程都有自己的工作内存,该内存是线程私有的为了方便理解,可以认为是虚拟机栈。线程的工作内存保存了线程需要的变量在主内存中的副本。

2025-01-12 17:16:49 753

原创 JAVA常用数据结构及原理分析(面试总结)_java数据结构

List (列表)ArrayList、Vector是线性表,使用Object数组作为容器去存储数据的,添加了很多方法维护这个数组,使其容量可以动态增长,极大地提升了开发效率。它们明显的区别是ArrayList是非同步的,Vector是同步的。不用考虑多线程时应使用ArrayList来提升效率。LinkedList是链表,略懂数据结构就知道其实现原理了。链表随机位置插入、删除数据时比线性表快,遍历比线性表慢。双向链表原理图:Map(存储键值对,key唯一)

2025-01-12 17:13:07 679

原创 Dubbo系统架构解析

Invoker 是实体域,它是 Dubbo 的核心模型,其其他模型都是向它靠拢,或转换成它,它代表一个可执行体,可向它发起 Invoker 调用,它有可能是一个本地实现,也有可能是一个远程实现,也有可能是一个集群实现。:是 Dubbo 的核心模型,其它模型都向它靠拢,或转换成它,它代表一个可执行体,可向它发起 invoke 调用,它有可能是一个本地的实现,也可能是一个远程的实现,也可能一个集群实现。,该层与实际业务逻辑有关,根据服务消费方和服务提供方的业务设计,实现对应的接口。该层包含了以下 6 层。

2025-01-11 23:47:00 766

原创 Dubbo实战案例01【需求分析及项目创建】

0.102.5.4jar包的依赖注入 ,由于该工程是一个父工程,所以jar包在该pom文件中只是声明单元测试junitjunit日志处理org.slf4jMybatismybatisMySqlmysql连接池druidSpringJSP相关jstljstlprovidedjsp-apiprovideddubbodubbocom.101teczkclient**/*.xml**/*.xml。

2025-01-11 23:43:19 860

原创 Docker:独具魅力的开源容器引擎_docker 开源

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux 或 Windows操作系统的机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口,更重要的是容器性能开销极低。Docker 的开源项目诞生于 2013 年初,最初是 dotCloud 公司内部的一个业余项目。它基于 Google 公司推出的 Go 语言实现。

2025-01-11 23:39:36 860

原创 Android 错误信息捕获发送至服务器 {转载}

/ 可以只创建一个文件,以后全部往里面append然后发送,这样就会有重复的信息,个人不推荐。// Android的兼容性众所周知,所以可能错误不是每个手机都会报错,还是有针对性的去debug比较好。// 在上传的时候还可以将该app的version,该手机的机型等信息一并发送的服务器,} else { //如果自己处理了异常,则不会弹出错误对话框,则需要手动退出app。//这里不能再向上抛异常,如果想要将log信息保存起来,则抛出runtime异常,

2025-01-11 09:00:50 319

原创 Android 装逼技术之暗码启动应用

具体实现在 DialpapFragment 中,看到 DialpapFragment 实现了 TextWatcher,TextWatcher 有 3 个重要方法,分别为:beforeTextChanged,onTextChanged 和 afterTextChanged,重点看 afterTextChanged 方法。

2025-01-11 08:53:26 927

原创 23篇大数据系列(三)sql基础知识(史上最全,建议收藏)

蓝桥签约作者、大数据&Python领域优质创作者。维护多个大数据技术群,帮助大学生就业和初级程序员解决工作难题。**我的使命与愿景:**持续稳定输出,赋能中国技术社区蓬勃发展!免费下载海量【大数据系列文章,从提升自信心,自如应对面试,顺利拿到实习岗位或offer;❖ 掌握大数据的基础知识,与其他同事沟通无障碍;具备一定的项目实战能力,对于大数据工作直接上手;!!大数据工程师系列专栏:而大数据时代,有一个关键性的岗位不得不提,那就是大数据工程师。想必大家也会好奇,大数据工程师,日常是做什么的呢?

2025-01-11 02:13:00 399

原创 23种设计模式娓娓道来,助你优雅的编写出漂亮代码

普通代理:_在该模式下,调用者只知代理而不用知道真实的角色是谁,屏蔽了真实角色的变更对高层模块的影响,真实的主题角色想怎么修改就怎么修改,对高层次的模块没有任何的影响,只要你实现了接口所对应的方法,该模式非常适合对扩展性要求较高的场合。_Adapter 适配器角色:_适配器模式的核心角色,其他两个角色都是已经存在的角色,而适配器角色是需要新建立的,它的职责非常简单:把源角色转换为目标角色,怎么转换?认为是命令的地方就可以采用命令模式,例如,在 GUI 开发中,一个按钮的点击是一个命令,可以采用命令模式;

2025-01-11 02:09:17 921

原创 21【JDBC操作数据库元数据】

当使用语句对象(PreparedStatement、Statement)执行查询获取结果集时,使用结果集对象(ResultSet)可以获取本次查询结果集的元数据,元数据中包含了查询结果集的列数量、指定列的类型、指定列所在的表名等详细情况;当使用PreparedStatement对参数进行预编译处理时,可以获取参数的元数据,例如预编译的参数个数、参数的类型等,但在MySQL驱动大部分方法都不支持,关于这个功能我们了解即可;

2025-01-11 02:05:34 383

原创 Java面试题-Java基础-扩展

【代码】Java面试题-Java基础-扩展。

2024-12-17 16:30:53 194

原创 Java面试问题笔记——JVM

与栈类似,也是用来保存执行方法的信息.执行Java方法是使用栈,执行Native方法时使用本地方法栈.2.4、程序计数器保存着当前线程执行的字节码位置,每个线程工作时都有独立的计数器,只为执行Java方法服务,执行Native方法时,程序计数器为空.2.5、堆JVM内存管理最大的一块,对被线程共享,目的是存放对象的实例,几乎所欲的对象实例都会放在这里,当堆没有可用空间时,会抛出OOM异常.根据对象的存活周期不同,JVM把对象进行分代管理,由垃圾回收器进行垃圾的回收管理2.6、方法区。

2024-12-17 16:27:12 826

原创 Java面试中最常问的JVM问题大全,附答案

长生命周期的对象持有短生命周期对象的引用就很可能发生内存泄露,尽管短生命周期对象已经不再需要,但是因为长生命周期对象持有它的引用而导致不能被回收,这就是 Java 中内存泄露的发生场景,通俗地说,就是程序员可能创建了一个对象,以后一直不再使用这个对象,这个对象却一直被引用,即这个对象无用但是却无法被垃圾回收器回收的,这就是 java 中可能出现内存泄露的情况,例如,缓存系统,我们加载了一个对象放在缓存中 (例如放在一个全局 map 对象中),然后一直不再使用它,这个对象一直被缓存引用,但却不再被使用。

2024-12-17 16:23:31 276

原创 Java面向对象编程的特征—封装、继承、多态详细介绍

父类引用引用子类对象,且父类和子类有同名的覆盖方法,通过父类的引用来调用同名的覆盖方法的时候,他有可能会表现出不同的行为,把这种表现出不同行为的这种过程/思想,叫做多态。首先,父类引用引用子类对象的时候,这个引用所能访问的只有父类所包含的变量或者方法,不可以访问子类独有的特性。需要重写的方法的访问限定修饰符,子类的访问限定修饰符一定要大于或等于父类的访问限定修饰符。(在编译的时候调用的是父类的那个方法而运行时候又是运行出子类复写父类这个方法的结果)子类继承了父类,那么构造子类的时候,需要先帮父类进行构造。

2024-12-17 16:19:50 517

原创 Java集合框架(四):Map、AbstractMap与JDK1

作者不想让我们使用自定义的容量和负载因子默认的容量为16,负载因子为0.75无参构造方法就是使用默认参数来调用有参构造方法构造方法并没有马上去给table数组设置容量,而是将阈值设为了容量。

2024-12-17 16:16:08 922

原创 Java集合框架(五):JDK1

接下来,我们来看看tableSizeFor方法干了什么可以看到这个方法是。

2024-12-17 16:12:27 811

原创 2018年GitHub上最流行前25大Python开源项目,你收藏了吗?_github上python专门用于分割石头和沙粒的事物

Tornado是使用Python开发的全栈式(full-stack)Web框架和异步网络库,,最初是由FriendFeed上开发的。Tornado是使用Python开发的全栈式(full-stack)Web框架和异步网络库,,最初是由FriendFeed上开发的。HTTPie 是一个开源的命令行的 HTTP 工具包,其目标是使与Web服务的CLI交互尽可能人性化。Django 是 Python 编程语言驱动的一个开源模型-视图-控制器(MVC)风格的 Web 应用程序框架,旨在快速开发出清晰,实用的设计。

2024-12-16 19:04:20 725

原创 2018 秋招 百度二轮面试---血淋淋的经历写实

1,安卓源码看过多少有时候看到某个函数,心血来潮可能会点进去看看是如何实现的,但是没有集体性看过.2,RecyclerView怎么实现的?不知道啊,那你说说是怎么用的?怎么实现的,我是真的没有一个大体的认识,之前没去集体看过RecyclerView的源码,最多只是知道几个方法是怎么实现的.怎么用的我就不说了,大家都比我清楚.

2024-12-16 18:56:54 1002

原创 2015第六届蓝桥杯 C C++B组真题及题解_有些人很迷信数字,比如带4某抽奖活动奖券号码是5位数

因此,我们可通过DFS实现该过程,同时记录当前手中牌的数量cursum及最大牌号curno,且自己手中的牌按牌号递增排序(即只考虑13张牌依次增大的组合,而不需考虑其所有组合(如2 3 4三张牌,只考虑2 3 4组合而不考虑其他5种))(width-2-strlen(s))/2:(width-2-strlen(s))/2+1,” "此题的实质时不断试探交换a[i]与a[k],通过x数组的全排列得到分数"x[0]x[1]x[2]x[3] / x[4]x[5]x[6]x[7]x[8]",然后判断是否为1/3。

2024-12-16 18:53:13 965

原创 17 - vulhub - Django GIS SQL注入漏洞(CVE-2024-9402)

简介:Django是Django基金会的一套基于Python语言的开源Web应用框架。该框架包括面向对象的映射器、视图系统、模板系统等。Django 1.11.29之前的1.11.x版本、2.2.11之前的2.2.x版本和3.0.4之前的3.0.x版本中存在SQL注入漏洞。攻击者可借助特制的SQL语句利用该漏洞查看、添加、修改或删除数据库中的信息。

2024-12-16 18:49:31 444

原创 16个你绝不知道的Python神奇技能_python 大招

fget是获取属性的值的函数,fset是设置属性值的函数,fdel是删除属性的函数,doc是一个字符串(like a comment).从实现来看,这些参数都是可选的。证明了会先执行__enter__方法, 然后调用with内的逻辑, 最后执行__exit__做退出处理, 并且, 即使出现异常也能正常退出。通过string类型的name, 返回对象的name属性(方法)对应的值, 如果属性不存在, 则返回默认值, 相当于object.name。只发一张网上的图, 然后差文档就好了, 这个是记不住的。

2024-12-16 18:45:51 469

原创 15个经典基础Python练手案例,基本功就是这样练成的_十五个python经典案例

newFileName = oldFileName[:fileFlagNum] + ‘[复件]’ + fileFlag。一个学校,有3个办公室,现在有8位老师等待工位的分配,请编写程序,完成随机的分配。2、电脑 随机 出拳 —— 先假定电脑只会出⽯头,完成整体代码功能。1、从控制台输⼊要出的拳 —— ⽯头(1)/剪⼑(2)/布(3)输入文件的名字,然后程序自动完成对文件进行备份。把已经存在的文件进行批量的修改。1.写一个函数打印一条横线。1.写一个函数求三个数的和。输入要拷贝的文件名字:")

2024-12-16 18:42:10 1012

原创 15-Java枚举类详解【干货笔记】

public enum 枚举类名 {// 枚举项1, 枚举项2, 枚举项3, …;// 私有构造方法// 成员变量// 成员方法3、使用如果需要使用很多常量,并且这些常量用在同一个业务场景,那么可以使用枚举类型。【注意】枚举类型都继承java.lang.Enum,所以枚举类不能再继承其它类型。定义枚举项时,多个枚举项之间需要使用隔开,通常使用大写。枚举类型的构造方法使用private修饰通过枚举类名.枚举项名称去访问指定的枚举项枚举类型可以实现接口3.1、普通用法。

2024-12-16 18:38:29 948 1

原创 14 软硬链接_怎么查看软连接目录

硬链接的源文件和链接文件共用一个inode号,说明他们是同一个文件;而软链接原文件和和链接文件是不同的文件,链接文件inode指向的是源文件的绝对路径。硬链接在文件属性上体现不出来,其表示文件类型的字符处为“-”原文件是普通文件,硬链接文件也是普通文件;而软链接明确标识是链接文件,其表示文件类型的字符处为“l”。硬链接链接数目要增加,软链接的链接数目不会增加。硬链接文件大小跟原文件相同;软链接文件大小与原文件不同。硬链接有自己的文件名;软链接的文件名通常是指向其链接的原文件。

2024-12-16 18:34:48 1556

转载 12《hutool实战》 FileTypeUtil 文件类型判断工具类(JAVA 小虚竹)_filetypeutils

移除文件类型映射根据文件流的头部信息获得文件类型根据文件流的头部信息获得文件类型根据文件流的头部信息获得文件类型根据文件流的头部信息获得文件类型通过路径获得文件类型。

2024-12-16 18:31:07 1276

原创 11【门面设计模式】_门面设计模式解决的问题

Tips:门面设计模式就是迪米特法则的具体应用;

2024-12-16 18:23:38 289

空空如也

空空如也

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

TA关注的人

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