草庐IT

$打分机制

全部标签

JVM之垃圾回收机制(GC)

1.简介垃圾回收在做Java开发的过程中,我们会不断地创建很多的对象,这些对象数据会占用系统内存,如果得不到有效的管理,内存的占用会越来越多,甚至会出现内存溢出的情况,所以,我们需要进行对内存进行合理地释放,这个时候GC就派上大用场的。垃圾回收(GC)是由Java虚拟机(JVM)垃圾回收器提供的一种对内存回收的一种机制,它一般会在内存空闲或者内存占用过高的时候对那些没有任何引用的对象不定时地进行回收。2.JVM内存模型Jdk1.8以前Jdk1.8以后虚拟机栈、本地方法栈和程序计数器,这三个区域是线程私有的。比如栈帧的生命周期是和线程关联的,即随线程而生,随线程而死。虚拟机栈其实就是用来描述Ja

Java的反射(reflection)机制的简单使用

目录一、定义二、用途三、反射基本信息四、反射相关的类五、反射示例六、反射的优点和缺点一、定义    Java的反射机制是运行时的状态,可以通过反射来调用类里面的属性和方法,私有的属性和方法也可以调用,也可以对它们进行修改。二、用途    (1)、在第三方应用开发过程,经常会遇到私有的成员变量和方法或是只对系统应用开放,这式就能用反射机制拿到这些私有的成员变量和方法。(2)、开发各种通用框架。三、反射基本信息    Java程序中许多对象在运行时会两种类型,一种是编译时类型,一种运行时类型,比如:Personp=newStudent(); 这种情况下,p在编译时的类型是Person,在运行时是S

mongodb - "SCRAM-SHA-1"认证机制需要使用 --enable-ssl 构建的 libmongoc

使用Laravel5.4和Mongodb3.6连接数据库时出现错误信息“SCRAM-SHA-1”身份验证机制需要使用--enable-ssl构建的libmongoc它在具有相同版本的ubuntu16.04中运行良好,但在AWSLinux中运行不佳。已安装LAMP[php70,apach24]:https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/install-LAMP.html已安装Mongodb[3.6]:https://docs.mongodb.com/manual/tutorial/install-mongodb-on-amaz

解析Java的多态性与动态绑定机制

多态性是面向对象编程中的一个重要概念,它允许不同的对象对同一消息做出不同的响应。在Java中,多态性通过动态绑定机制来实现。多态性是指一个对象可以表现出多种形态。在面向对象编程中,多态性允许一个父类类型的变量引用子类类型的对象,通过调用相同的方法,实现不同的行为。多态性的实现依赖于两个核心概念:继承和方法重写。1、继承:子类继承了父类的属性和方法。通过继承,子类可以复用父类的代码,并且具备与父类相似的外部接口。2、方法重写:子类可以覆盖父类的方法,即在子类中重新定义与父类方法签名相同的方法。子类重写父类的方法时,可以改变方法的行为逻辑,但方法的名称、参数列表和返回类型必须与父类一致。通过继承和

Java类加载机制详解

一.类加载器及双亲委派机制类加载器加载类备注启动类加载器(BootstrapClassLoader)JAVA_HOME/jre/lib无上级,无法直接访问由jvm加载拓展类加载器(ExtensionClassLoader)JAVA_HOME/jre/lib/ext父加载器为Bootstrap,显示为null。该类由Bootstrap加载应用类加载器(ApplicationClassLoader)classpath父加载器上级为Extension,该类由Bootstrap加载自定义类加载器自定义路径父加载器为Application,该类由ApplicationClassLoader加载1.类加载

学习一下Java的ArrayList和contains函数和扩容机制

起因在Leetcode上做题写了两种暴力解法,但是执行效率上不太一样。时间上差很远,内存虽然差不多但是前者击败30%,后者击败94%。这两种解法区别是用一条ArrayList还是两条来存数据,所以contains虽然执行次数一样但是检测的长度上不一样,而且ArrayList的扩容次数也不一样,所以学习一下。contains(Objecto)直接翻(JDK8)源码:null和object区分开来还是因为equals有一方是null的话都会导致异常.合并一起写的话可以用Objects.equals(obj1,obj2)的写法.所以显然暴力解法用到的contains的原理就是朴实无华的一遍遍搜索所以

如何在Puppeteer中设置User-Agent来绕过京东的反爬虫机制?

概述京东作为中国最大的电商平台,为了保护其网站数据的安全性,采取了一系列的反爬虫机制。然而,作为开发者,我们可能需要使用爬虫工具来获取京东的数据。正文Puppeteer是一个由Google开发的Node.js库,它提供了高级的API,用于控制无头浏览器(HeadlessBrowser),如Chrome或Chromium。Puppeteer的实时端点位于它可以模拟用户在浏览器中的操作,包括点击、填写表单、截图等。这使得我们可以使用Puppeteer来模拟真实用户的行为,获取想要的数据。在使用Puppeteer爬取京东数据时,可能会遇到一些问题。例如,京东可能会检测到我们使用了自动化工具,并阻止我

使用ZooKeeper实现数据分片机制及其集群容错能力

作者:禅与计算机程序设计艺术1.简介数据分片(sharding)在分布式数据库中,数据分片是指将一个大的表按照业务规则或某种规则拆分成多个小的子表或者分区,然后分别存储到不同的物理服务器上,提高查询效率、扩展性等,而每个小的子表又可以称之为“分片”,这个过程就是数据分片。一般情况下,不同的子表被分配给不同的机器进行存储和处理,这样就能够有效地利用硬件资源提升查询性能。分布式协调服务(DistributedCoordinationService)分布式协调服务(DCS)是指多个独立的节点组成一个集群,通过集群中的各种组件共同完成工作,实现对分布式系统的管理、协调和配置等功能。目前最主流的DCS有

提高程序的健壮性:异常处理机制可以避免程序因错误而崩溃,让程序在某些情况下可以沉默”,从而保证程序的运行安全;

作者:禅与计算机程序设计艺术1.简介在软件开发过程中,随着应用的不断迭代更新、功能的增加、人员的变动等原因,软件的质量会逐渐下降,出现各种各样的bug、缺陷、漏洞等。这些bug或许能够影响系统的正常运行,或者导致系统崩溃甚至数据丢失。因此,如何在软件的设计中就对可能出现的异常情况作出及时的应对措施是非常重要的。  为了提升软件的健壮性,一般都会采用异常处理机制。异常处理机制主要用来捕获并处理程序在运行过程中的非正常状态,使程序能够继续运行,并对出现的错误进行记录和排查。通过分析异常日志和调用堆栈信息,定位到问题产生的根源并解决。这样的机制既能够保障软件的稳定性,又能够有效地防止程序因错误而崩溃