Java对象"后事处理"那点事儿——垃圾回收(一)
1、Dead Or Alive 我们都知道对象死亡的时候需要进行垃圾回收来回收这些对象从而释放空间,那么什么样的对象算是死亡呢,有哪些方法可以找出内存中的死亡对象呢?一般来说,我们可以这样认为:如果内存中不存在对当前对象的引用,则此对象一定是死亡状态;但是死亡状态的对象并不一定没有其他对象进行引用(可能存在死亡对象循环引用的情况)。这里需要说明一下,死亡的对象并不一定会被回收释放占用的空间,这种情况就是常称的"内存泄漏"。判定对象存活的算法一般是以下两种。 1.1 引用计数法 引用
spring和springMVc配置文件
spring <?xml version="1.0" encoding="utf-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/sche
Spring Cloud Ribbon源码分析---负载均衡实现
上一篇结合 Eureka 和 Ribbon 搭建了服务注册中心,利用Ribbon实现了可配置负载均衡的服务调用。这一篇我们来分析Ribbon实现负载均衡的过程。 从 @LoadBalanced入手 还记得前面配置 RestTemplate: @Bean
@LoadBalanced
RestTemplate restTemplate() {
return new RestTemplate();
} 在消费端使用Spring 提供的 RestTemplate 来发出请求,而Ribbon 在
小程序封装一个有输入框的modal层组件
其实很简单,就是在modal中添加新的 input <view>
<modal class="modal" wx:if="{{!hiddenModal}}"
title="{{title}}" confirm-text="确定" cancel-text="取消" bindconfirm="modalconfirm" bindcancel="modalcancel">
<view class="input-line">
<input pl
C# 调用打印机打印文件
C# 调用打印机打印文件,通常情况下,例如Word、Excel、PDF等可以使用一些对应的组件进行打印,另一个通用的方式是直接启用一个打印的进程进行打印。示例代码如下: using System.Diagnostics;
string filePath = "文件路径";
string printer = "打印机";
ProcessStartInfo info = new ProcessStartInfo();
info.Arguments = "\"" + printer +
每月IT摘录201911
技术 1.以 MySQL 的 InnoDB 引擎为例,由于 MySQL 中有两套日志机制,一套是存储层的 redo log,另一套是 server 层的 binlog,每次更新数据都要对两个日志进行更新。为了防止写日志时只写了其中一个而没有写另外一个,MySQL 使用了一个叫两阶段提交的方式保证事务的一致性。 2.sso需要一个独立的认证中心,只有认证中心能接受用户的用户名密码等安全信息,其他系统不提供登录入口,只接受认证中心的间接授权。间接授权通过令牌实现,sso认证中心验证用户的用户名密码
Spring Cloud Ribbon 源码分析---负载均衡算法
上一篇分析了Ribbon如何发送出去一个自带负载均衡效果的HTTP请求,本节就重点分析各个算法都是如何实现。 负载均衡整体是从IRule进去的: public interface IRule{
/*
* choose one alive server from lb.allServers or
* lb.upServers according to key
*
* @return choosen Server object. NULL is r
一文让你彻底了解大数据实时计算引擎 Flink
前言 在上一篇文章 你公司到底需不需要引入实时计算引擎? 中我讲解了日常中常见的实时需求,然后分析了这些需求的实现方式,接着对比了实时计算和离线计算。随着这些年大数据的飞速发展,也出现了不少计算的框架(Hadoop、Storm、Spark、Flink)。在网上
Java 中初始化数组
数组是一种有用的数据类型,用于管理在连续内存位置中建模最好的集合元素。下面是如何有效地使用它们。 Coffee beans and a cup of coffee 有使用 C 或者 FORTRAN 语言编程经验的人会对数组的概念很熟悉。它们基本上是一个连续的
微信JSAPI支付(二)代码重构之统一下单,查询,下载等功能实现
前一篇介绍了如何实现微信的统一下单,但在实际生产中,不建议直接使用。开发中的代码,需要可移植,低耦合。因此,特地重构了关于微信支付的代码,希望为感兴趣的朋友能提供一些帮助。 重构步骤 配置类注入 1.新建实体类,封装微信公众平台的配置参数 @Data pub
作为高级开发你不得不懂的面试题之Java 并发常见面试题总结(一) 持续更新......
1. 什么线程以及进程? 1.1 何为进程? 进程是程序的一次执行过程,是系统运行程序的基本单位,因此进程是动态的。系统运行一个程序即是一个进程从创建,运行到消亡的过程。 在 Java 中,当我们启动 main 函数时其实就是启动了一个 JVM 的进程
SpringCloud番外篇-服务治理之Nacos
一、Nacos概述 Nacos是阿里巴巴开源的服务注册中心,官方文档:nacos.io/zh-cn/docs/… 从个人使用体验上看,nacos要比eureka和consul舒服不少。 Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简
Spring Cloud gateway 网关服务二 断言、过滤器
微服务当前这么火爆的程度,如果不能学会一种微服务框架技术。怎么能升职加薪,增加简历的筹码?spring cloud 和 Dubbo 需要单独学习。说没有时间?没有精力?要学俩个框架?而Spring Cloud alibaba只需要你学会一个就会拥有俩种微服务治
最近使用Nacos的一些问题
最近一个新的产品在使用Nacos做注册中心和配置中心,在使用的过程中也发生了一些小问题,在此记录下。 使用版本: <dependency> <groupId>com.alibaba.boot</groupId> &l
redis安裝并与SpringBoot整合
Redis安装 远程连接工具 可以使用xshell,crt,MobaXterm等连接工具 我这里使用xshell,使用教育版即可,推荐直接在官网登记下载 打开后,文件->新建,创建一个新的会话属性,录入服务器的IP,点击连接后输入登录的用户名密码即可
数据结构 - 线性表
线性表的基本概念 线性表是由n(n >= 0)个数据元素(结点)组成的有限序列. 则n为表的长度, 当n = 0时为空表 非空的线性表(n > 0)的表示方式 L = (a1, a1, …, an) 其中a1为起始结点, an为终端结点. 对任意一
一个简单的基于gitlab的配置服务
要什么样的配置服务 我们的项目以前都是由各开发人员自己写一个config.js或者app.conf来管理项目的配置信息,经常出现下面的问题,我需要一个配置服务来解决它 1. 杜绝犯低级错误 如果没犯低级错误的话,一般也不会出现什么问题,什么是低级错误呢,就拿前
互联网应用架构概览-学习笔记
https://developer.aliyun.com/edu/course/33/learn#lesson/621 1 互联网应用架构概览 负载均衡器:将用户请求分配给网页服务器处理WebServer WebServer: 返回图片、网页等静态内容,将动态内容(购物车)等分配给应用服务器AppServer 缓存服务器:缓存常用的数据库结果 2 网络链路存在的问题及解决方案 第一公里 BGP: 用各个运营商的网络都能最快访问同一个IP 第二公里 CDN: 用户A访问静态内容后将内容缓存在最近
【LeetCode 12】整数转罗马数字
题目链接 【题解】 (涨知识了。。原来罗马数字是这么回事。。 把{1,4,5,9,10,40,50,90,100,400,500,900,1000}这些东西的罗马数字放在一个数组里面。 每次从大到小减。 减一个加上对应的罗马数字就好。 【代码】 class Solution {
public:
string intToRoman(int num) {
int nums[]={1,4,5,9,10,40,50,90,100,400,500,900,1000};
今日推荐
周排行