- 博客(19)
- 收藏
- 关注
原创 python之多线程并发
今天呢笔者想和大家来聊聊python多线程的并发,废话就不多说了咱们直接进入主题哟。最好呢,再次说一下守护线程和阻塞线程的定义守护线程:子线程会随着主线程的结束而结束,无论子线程是否执行完毕阻塞线程:主线程会等待子线程的执行结束,才继续执行。
2023-10-26 13:27:17 180
原创 jvm基本常识
Oracle的项目发布经理Joe Darcy在OSCON 2011 上对两者关系的介绍也证实了OpenJDK 7和Oracle JDK 7在程序上是非常接近的, 两者共用了大量相同的代码。Oracle JDK之前被称为SUN JDK, 这是在2009年Oracle收购SUN公司之前, 收购后被命名为Oracle JDK。实际上, Oracle JDK是基于OpenJDK源代码构建的, 因此Oracle JDK和OpenJDK之间没有重大的技术差异。JVM有两种运行模式:Server模式与Client模式。
2023-10-18 03:08:30 84 1
原创 JVM主要组成部分及其作用
例如类java.lang.Object,它存放在rt.jar之中,无论哪一个类加载器要加载这个类,最终都是委派给处于模型最顶端的启动类加载器进行加载,因此Object类在程序的各种类加载器环境中都是同一个类。当一个类加载器收到类加载的请求,它首先不会自己去加载这个类,而是把这个请求委派给父类加载器去完成,每一层的类加载器都是如此,这样所有的加载请求都会被传送到顶层的启动类加载器中,只有当父加载类无法完成加载请求(它的搜索范围中没找到所需的类)时,子加载器才会尝试去加载。,算是一种引入其它语言程序的接口。
2023-10-18 00:43:36 75 1
原创 java高级工程师面试题及答案解析
存储数据的字符数组没有被final修饰,说明值可以改变,抽象类AbstractStringBuilder内部都提供了一个自动扩容机制,当发现长度不够的时候(初始默认长度是16),会自动进行扩容工作,扩展为原数组长度的2倍加2,创建一个新的数组,并将数组的数据复制到新数组,所以对于拼接字符串效率要比String要高。String 声明的是不可变的对象,每次操作都会生成新的 String 对象,然后将指针指向新的 String 对象,而。GC,加大老年代可调1:1,但是要给老年代预留三分之一的空间。
2023-10-12 00:22:21 148
原创 Java面试题大汇总
整理这些面试题源于在微信群和几个刚入职的小伙伴们的一次讨论,很多小伙伴谈了自己的面试经历和体会,很多人最初鄙视刷题党,觉得开发技能最重要,但在短暂的面试过程中很挫败。转而去看面试题,但是网上面试题太多但又不全,查找很不方便,多是看过的又看,看十道才能看到面生的题目,极大的浪费了求职期间的宝贵时间。93,Session的save()、update()、merge()、lock()、saveOrUpdate()和persist()方法分别是做什么的?48、垃圾回收器的基本原理是什么?
2023-10-11 18:06:02 36
原创 JAVA面试题——初级
JDK:是java开发的工具箱,包含jre,还包含将java文件编译为class文件的javac工具类(编译器),除此之外还包括java原生的API;char型变量是用来存储Unicode编码的字符的,unicode编码的字符集中包含汉字所以,char行变量中可以存储汉字。重写与重载都是java多态的体现。重写是父类与子类之间的多态性的一种表现形式,重载是一个类中多态性的表现形式。JVM中类的装载是由ClassLoader和它的子类来实现的,Java ClassLoader 是一个重要的Java运行时。
2023-10-11 13:52:21 43
原创 Java面试时,该如何准备亮点?
*比如你说,对此我们建了索引,这样就很笼统,但你如果说,经过看执行计划后发现,是因为在从订单明细表里根据用户名去搜索时,对用户名字段没建索引,或者说,在下订单的过程中,需要根据用户ID多次到风控表里去查数据,这块没用缓存,所以导致性能慢。**比如你在面试中介绍项目时,你说,在这个项目里,我有过数据库性能调优的经验,有过排查内存性能的经验,有通过看linux日志解决线上问题的经验,有通过看底层源码解决实际问题的经验。或者会问,你说了通过jenkins部署,说了通过new relic监控,你说下细节。
2023-10-11 12:52:43 124
原创 Java进阶:Zookeeper相关笔记
●Zookeeper是一个开源的分布式协调服务,需要下载并部署在服务器上(使用cmd启动,windows与linux都可用)。●zookeeper一般用来实现诸如数据订阅/发布、负载均衡、命名服务、集群管理、分布式锁和分布式队列等功能。●有多台服务器,每台服务器上部署一个zookeeper,在每个zookeeper中要创建myid文件,标注自己的id,然后在配置文件zoo.cfg中写好其它zookeeper的ip与通信端口,这些zookeeper之间就可以通信了。
2023-10-11 12:02:34 88
原创 Java线程池七个参数详解
由于该队列的近似无界性,当线程池中线程数量达到corePoolSize后,再有新任务进来,会一直存入该队列,而基本不会去创建新线程直到maxPoolSize(很难达到Interger.MAX这个数),因此使用该工作队列时,参数maxPoolSize其实是不起作用的。也就是说新任务进来时,不会缓存,而是直接被调度执行该任务,如果没有可用线程,则创建新线程,如果线程数量达到maxPoolSize,则执行拒绝策略。java多线程开发时,常常用到线程池技术,这篇文章是对创建java线程池时的七个参数的详细解释。
2023-10-10 13:29:37 300 1
原创 Java多线程面试题(面试必备)
定义:多线程是指程序中包含多个流,即在一个程序中可以同时进行多个不同的线程来执行不同的任务优点可以提高CPU的利用率,在多线程中,一个线程必须等待的时候,CPU可以运行其它线程而不是等待,这样就大大提高了程序的效率,也就是说单个程序可以创建多个不同的线程来完成各自的任务。缺点线程也是程序,线程也需要占内存,线程也多内存也占的也多。多线程需要协调和管理,所以需要CPU跟踪线程。线程之间共享资源的访问会相互影响,必须解决禁用共享资源的问题。进程。
2023-10-10 12:43:56 44 1
原创 Java 多线程 终止线程的4中方式
上篇是线程的生命周期,那这次来分享下,终止线程的几种方式。所谓正常运行结束,我的理解就是程序正常运行结束,线程自动结束。一般run()方法执行完,线程就会正常结束,然而腻,常常有些线程是伺服线程。他们需要长时间的运行,只有在外部某些条件满足的情况下,才能关闭这些线程。使用一个变量来控制循环,例如:最直接的方法就是设一个boolean类型的标志,并通过设置这个标志位true或false来控制while循环是否退出,下面放代码:这里定义了一个退出标志exit,当exit为true时,while循环退出,exi
2023-10-10 00:34:47 574 1
原创 java 分布式锁
相比较而言,基于zookeeper的分布式锁在可靠性上最优,性能也优于数据库,略低于基于缓存的分布式锁,理论上是最佳解决方案。但我的观点是实际开发中,可能zookeeper并不是很常用,如果单纯为了分布式锁而搭建一套zookeeper集群,似乎并不划算,所以我站redis。项目地址。
2023-10-10 00:34:04 61 1
原创 JAVA 分布式 - 分布式介绍
1.分布式系统一定是由多个节点组成的系统。其中,节点指的是计算机服务器,而且这些节点一般不是孤立的,而是互通的。2.这些连通的节点上部署了我们的节点,并且相互的操作会有协同。分布式系统对于用户而言,他们面对的就是一个服务器,提供用户需要的服务而已,而实际上这些服务是通过背后的众多服务器组成的一个分布式系统,因此分布式系统看起来像是一个超级计算机一样。
2023-10-10 00:33:21 80 1
原创 C# 使用CancellationTokenSource取消多线程
这句话的意思其实就是检查cts.Cancel()设置的属性状态,也就是cts.IsCancellationRequested是否为true,如果为。有时间我们在使用多线程的时候,需要取消线程的执行,可以使用CancellationTokenSource来取消对Task开辟多线程的取消。多个线程绑定顶一个CancellationTokenSource的token然后调用该对象的cancel就可以同时取消多个线程了。我们并不能真正去取消线程的执行,只是从逻辑上去取消线程需要处理的逻辑。
2023-10-09 23:20:36 254 2
原创 2023 Java 面试题精选30道
答案:Java的反射机制是指在程序运行时,可以动态地获取类的信息,包括类的属性、方法、构造函数等,并且可以在运行时调用类的方法和修改类的属性。答案:Java中的泛型是指在编译时不确定的数据类型,它可以应用于类、接口、方法等,可以提高程序的类型安全性和代码的复用性。答案:Java中的动态代理是通过反射机制实现的,它可以在运行时动态地生成代理类,并将代理类的方法调用转发给被代理的对象。答案:Java中的注解是一种特殊的接口,它可以用来给程序中的类、方法、变量等添加额外的信息,比如作者、版本号等。
2023-10-09 23:01:21 57 1
原创 Java面试时,该如何准备亮点?
*比如你说,对此我们建了索引,这样就很笼统,但你如果说,经过看执行计划后发现,是因为在从订单明细表里根据用户名去搜索时,对用户名字段没建索引,或者说,在下订单的过程中,需要根据用户ID多次到风控表里去查数据,这块没用缓存,所以导致性能慢。**比如你在面试中介绍项目时,你说,在这个项目里,我有过数据库性能调优的经验,有过排查内存性能的经验,有通过看linux日志解决线上问题的经验,有通过看底层源码解决实际问题的经验。或者会问,你说了通过jenkins部署,说了通过new relic监控,你说下细节。
2023-09-15 18:39:04 190
原创 Java面试八股文 2021年最新Java面试题及答案汇总
String 和StringBuffer、StringBuilder 的区别在于String 声明的是不可变的对象,每次操作都会生成新的String 对象,然后将指针指向新的String 对象,而StringBuffer、StringBuilder可以在原有对象的基础上进行操作,所以在经常改变字符串内容的情况下最好不要使用String。在定义功能时,功能的一部分是确定的,有一部分是不确定的,而且确定的部分在使用不确定的部分,可将不确定的部分暴露出去,由该类的子类去完成。(2)final修饰的类不能被继承。
2023-09-15 18:15:48 46
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人