- 博客(16)
- 收藏
- 关注
转载 如何检测并避免 Java 中的死锁?
作者:Yujiaaohttps://segmentfault.com/a/1190000019962661经典但核心Java面试问题之一。如果你没有参与过多线程并发 Java 应用程序的编码,你可能会失败。如何避免 Java 线程死锁?如何避免 Java 中的死锁?这是Java 面试的热门问题之一, 也是多线程的编程中的重口味之一, 主要在招高级程序员时容易被问到, 且有很多后续问题。尽管问题看起来非常基本, 但大多数 Java 开发人员一旦你开始深入, 就会陷入困境。面试问题总是以“...
2021-05-29 08:20:08 82
转载 (八)Spring从入门到入土——代理模式
代理模式AOP的底层机制就是动态代理,这就是我们为啥先要学习代理模式。代理模式:静态代理动态代理静态代理静态代理角色分析抽象角色:一般使用接口或者抽象类来实现真实角色:被代理的角色代理角色:代理真实角色,代理真实角色后,一般会做一些附属的操作客户:使用代理角色来进行一些操作代码实现Rent.java 即抽象角色//抽象角色public interface Rent{ public void rent();}Host.java 即真实角色// 真实角色:房.
2021-05-25 15:21:04 76
转载 PDF转文本 &; 图片ORC - 在线App自动转 - 数据处理 (R)
在线转换PDF和图片文件大数据处理的过程中,我们会遇到很多不同类型的数据,其中PDF和图片类文件最为常见,若需要整理这些类型的以便于后期数据分析或展示,而将它们输出成文本格式或关系型表格形式,会是个较好的选择。所以针对这个主题,制作了一个APP专门解决这两类文件格式的转换问题。如下是本地操作视频:https://v.kuaishou.com/5Msafc另外,此APP已部署到上线,有兴趣的盆友可以点击下面的连接试试:https://aquamarine.shinyap...
2021-05-24 15:21:07 177
转载 操作系统的那些灵魂概念,你弄懂了几个?
一、进程进程与程序操作系统之中最为通用的概念就是「进程」。与此相关的面试题以及各种技术优化策略也层出不穷,足以够证明它对于理解操作系统中举足轻重的地位。事实上,通过「进程」,程序员可以更为直观的理解自己所开发的软件,并且能够从中深刻的认识到操作系统在软件运行做了些什么。简单来讲,进程就是正在执行的程序。每个进程都包含有属于自己的一段地址空间,可以看作是一部分内存空间。在这样的地址空间中,进程能够根据需要进行内存的读写。地址空间里面一般包含可执行程序,以及对应程序的数据及其堆栈。与每个进程相关的还..
2021-05-24 08:20:04 129
转载 动态代理
原文链接http://zhhll.icu/2020/11/12/java%E5%9F%BA%E7%A1%80/%E5%8F%8D%E5%B0%84/%E5%8A%A8%E6%80%81%E4%BB%A3%E7%90%86/动态代理动态代理有很多种方式,如jdk代理,cglib,ASM等在说动态代理之前先说一下静态代理静态代理静态代理在使用时,需要定义接口或者父类,被代理对象和代理对象一起实现相同的接口或者继承相同的父类静态代理使用的是组合模式,在代理类中包含有被代理类的对象public cl.
2021-05-22 20:21:12 67
转载 全文搜索引擎Elasticsearch,这篇文章给讲透了!
于elasticsearch的深度好文。生活中的数据搜索引擎是对数据的检索,所以我们先从生活中的数据说起。我们生活中的数据总体分为两种:结构化数据非结构化数据结构化数据:也称作行数据,是由二维表结构来逻辑表达和实现的数据,严格地遵循数据格式与长度规范,主要通过关系型数据库进行存储和管理。指具有固定格式或有限长度的数据,如数据库,元数据等。非结构化数据:又可称为全文数据,不定长或无固定格式,不适于由数据库二维表来表现,包括所有格式的办公文档、XML、HTML、Word 文档,邮件,各类报表、图..
2021-05-21 15:21:04 580
转载 在Mybatis中使用自定义缓存ehcache
自定义缓存 - ehcacheEhcache是一种广泛使用的开源Java分布式缓存。主要面向通用缓存,Java EE和轻量级容器导包<!-- https://mvnrepository.com/artifact/org.mybatis.caches/mybatis-ehcache --><dependency> <groupId>org.mybatis.caches</groupId> <artifactId>mybati.
2021-05-19 15:21:14 109
转载 MyBatis初级实战之四:druid多数据源
欢迎访问我的GitHubhttps://github.com/zq2599/blog_demos内容:所有原创文章分类汇总及配套源码,涉及Java、Docker、Kubernetes、DevOPS等;关于druid多数据源本文是《MyBatis初级实战》系列的第四篇,一个springboot应用同时操作两个数据库的场景,在平时也会遇到,今天要实战的就是通过druid配置两个数据源,让一个springboot应用同时使用这两个数据源;多数据源配置的基本思路首先要明确的是:数据源是通过配置类实现的.
2021-05-18 20:21:12 1359
转载 Goby资产扫描工具安装及报错处理
官网:https://cn.gobies.org/index.html产品介绍:帮企业梳理资产暴露攻击面,新一代网络安全技术,通过为目标建立完整的资产数据库,实现快速的安全应急。已有功能:扫描资产扫描端口扫描协议识别产品识别Web Finder漏洞扫描网站截图代理扫描域名扫描深度测试CS架构漏洞自定义PoC自定义字典漏洞利用远程会话报告数据统计及分析导出报告功能详细图文介绍,请官网查看:https://cn.gobies.org/features.html.
2021-05-18 08:20:07 2478
转载 使用注解开发Spring
【注意】:在spring4之后,想要使用注解形式,必须得要引入aop的包 还需要在配置文件中引入context依赖<?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:comtext="http.
2021-05-16 20:21:18 108
转载 Java内存模型(JMM)和虚拟机(JVM)内存、GC
在面试过程中,关于Java的内存模型(侧重于:Java的并发原理)和JVM的内存模型并不是同一个问题,所以自己在通过查询资料之后对相关的知识点进行总结,如果有写得错误的地方,欢迎指出,也可以一起探讨。 基于计算机的内存设计结构,CPU在发展过程中,运行速度越来越快,内存的读写速度跟不上CPU的运行速度,因此提出来“缓存” 的概念。CPU在读写过程中,可以将数据先写入缓存中,然后缓存将数据刷新到主存中。因此,在多线程的场景下就会出现“缓存不一致的情况”,就是多个线程对同一个数据的缓存可能不一致。 .
2021-05-16 15:21:10 152
转载 c语言学习教程1之预定义代码
c语言教程1之预定义代码大家好,我是爱学编程的小圆子。上一篇我觉得稀里扒拉的,根本没讲到重点,所以我又来详细讲一次啦。前言一些新手看到一些大佬的代码,里面可能第一句就是#include<....>,很多新手看不懂是什么,可能还有一些#define #ifdef #if #endif #else ....等等像这种带#符号的代码这些代码在c标准里面都叫预定义代码。那什么是预定义代码呢?预定义代码就是在预编译阶段编译的代码,至于编译过程限于篇幅我就不赘述了首先我们来看一个例子---.
2021-05-12 20:21:09 304
转载 设计模式(二)——Java简单工厂模式
简单工厂模式案例:披萨的项目(要便于披萨种类的扩展,要便于维护)1)披萨的种类很多(比如 GreekPizz、CheesePizz 等)2)披萨的制作有 prepare,bake, cut, box3)完成披萨店订购功能。使用传统的方式来完成编写 OrderPizza.java去订购需要的各种 PizzaPizza类package com.lin.simplefactory;public class SimpleFactoryDemo {}abstrac...
2021-05-07 15:21:08 66
转载 Java基础语法
注释:在java语言中,注释有解释与说明代码的作用,写注释是一个很好的编程习惯。注释不参与编译。注释一般分为三种:单行注释、多行注释与文档注释。单行注释://多行注释:/* */文档注释:/** */标识符与关键字:程序员在编程中对变量名、类名、包名、方法名等的命名被称为标识符,是由程序员自身决定;关键字是语言中固有的规范,如:public、class、static等,是程序员应当遵守的规则。标识符命名规则:标识符应当以字母、下划线_、美元符号$开头;标识符中只能有字母、.
2021-05-05 20:21:10 77
转载 Java 流程控制
scannerpackage com.jun.scanner;import java.util.Scanner;public class Demo01 { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.println("使用next方式接收"); if(scanner.hasNext()){ .
2021-05-04 20:21:16 47
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人