java
TNT_D
一生二,二生三,三生万物,道法自然!!!
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
java 对于<T>与<?>的用法区分
用具体的例子来说明public class CglibProxyFactoryT<T> { /** * 得到目标对象 */ private Object target; public CglibProxyFactory() { } /** * 使用构造方法传递目标对象 * @param target */ public CglibProxyFactory(Obj...原创 2020-12-08 08:54:04 · 1449 阅读 · 1 评论 -
springmvc或springboot使用RestTemplate访问远程接口
最近在使用springcloud的时候,远程uereka的同一个服务,会被多个机器注册。为了指定访问服务。发现可以使用RestTemplate访问。具体步骤如下:@Configurationpublic class BeanConfiguration { @Bean public RestTemplate getRestTemplate(){ return new RestTemplate(); }}package com.bngrp.datap原创 2020-10-27 13:54:41 · 505 阅读 · 0 评论 -
java 操作gis geometry类型数据
现在做的gis方面的业务,所以需要操作postgis中的geometry对象,找了很多的库,比如geotools,但是莫名下载不下来。还有就是jts,但是不好用,操作起来很复杂。找到了一个其他的类库--geolatte-geom 和geolatte-geojson。主要用于将String转geometry对象、wkt和wkb方便好用。pom.xml文件如下:<!-- https://mvnrepository.com/artifact/org.geolatte/geolatte-geom原创 2020-10-16 10:45:40 · 2969 阅读 · 0 评论 -
常用的git命令
git status #查看本地仓库状态git branch -a #查看所有(本地+远程)分支git checkout -b branchname #创建并切换分支git fetch #刷新(合并)所有有修改的代码git update-index --assume-unchanged filename #忽略不想要提交的代码git update-index --no-assume-unchanged filename #撤销对代码的忽略git add.原创 2020-09-25 15:56:00 · 205 阅读 · 0 评论 -
根据一个二叉树的前序和中序,重构二叉树
要重构二叉树,首先要知道什么是二叉树,以及如何自己创建一个二叉树。了解了二叉树是如何创建出来的,才能重构二叉树。什么是二叉树树(Tree)是n(n>=0)个结点的有限集。n=0时称为空树。在任意一颗非空树中:1)有且仅有一个特定的称为根(Root)的结点;2)当n>1时,其余结点可分为m(m>0)个互不相交的有限集T1、T2、......、Tn,其中每一个集合本身又是一棵树,并且称为根的子树。此外,树的定义还需要强调以下两点:1)n>0时根结点是唯一的,不可能存在多个原创 2020-09-08 11:31:24 · 342 阅读 · 0 评论 -
maven 分模块项目 主子pom之间的引入依赖关系
在项目时用到maven管理项目,在一个就项目的基础上开发新的项目;关于子项目和父项目,子项目与子项目之间的调用问题,发现自己存在不足,以下是自己查询的问题,解决了自己的疑惑。原文链接:https://www.cnblogs.com/kuoAT/p/6845876.html问题下面是一个简略的项目结构图Parent`------ childA(BusinessLayer) ...原创 2020-03-24 21:43:06 · 5770 阅读 · 0 评论 -
java 连接数据库实现增删改查的底层原理(源码)
java能够连接不同数据的原理是因为有不同的数据库驱动。 应用程序--》数据库驱动--》mysql或者oraclejdbc代码: public class Mysql { /** * 入口函数 * @param arg */ public static void main(String arg[]) { try...原创 2019-07-22 10:05:17 · 1482 阅读 · 0 评论 -
java 多线程编程常用类和接口
Java并发编程:多个线程同时访问共同的一块资源。synchronized关键字: synchronized 用法, Object o = new Object();public void m(){synchronized(o){return 123;}这里的o表示的是想要执行m方法,需要去获取到锁,而这个锁就是objectg对象,需要注意的是,要获取这个锁,不是争夺...原创 2019-07-17 13:42:52 · 663 阅读 · 0 评论 -
jvm 内存模型以及垃圾回收机制
java虚拟机内存主要分为堆内存、栈(线程)内存、本地方法栈内存、元空间(静态方法区)以及程序计数器。1、堆内存:主要存放new出来的对象和全局变量。2、栈内存(线程):每个内存都有一个单独的线程。主要存放局部变量、对象的引用、动态链接以及方法出口。在栈内存中,每个线程都会重新分配一块内存,每一个内存就是一个栈帧。在每个栈帧中,又会分为多个内存,这些个内存分别存放着局部变...原创 2019-07-02 15:30:56 · 255 阅读 · 0 评论 -
重量级锁、自旋锁、轻量级锁、偏向锁、悲观、乐观锁
重量级锁?自旋锁?自适应自旋锁?轻量级锁?偏向锁?悲观锁?乐观锁?执行一个方法咋这么辛苦,到处都是锁。今天这篇文章,给大家普及下这些锁究竟是啥,他们的由来,他们之间有啥关系,有啥区别。重量级锁如果你学过多线程,那么你肯定知道锁这个东西,至于为什么需要锁,我就不给你普及了,就当做你是已经懂的了。我们知道,我们要进入一个同步、线程安全的方法时,是需要先获得这个方法的锁的,退出这个方法时...转载 2019-05-08 09:24:52 · 277 阅读 · 0 评论 -
java面试题,带答案,用于查缺补漏
一、Java 基础1.JDK 和 JRE 有什么区别?答:JRE是java运行时环境,包含了java虚拟机,java基础类库。是使用java语言编写的程序运行所需要的软件环境,是提供给想运行java程序的用户使用的。 JDK是java开发工具包,是程序员使用java语言编写java程序所需的开发工具包,是提供给程序员使用的2.== 和 equals 的区别是什么?答:==是比...原创 2019-03-01 10:28:41 · 2022 阅读 · 0 评论 -
java 动态代理
我觉得首先要知道代理的意思。一个简单的例子,上学的时候老师收作业,这些作业不能是学生一个个的拿给老师,老师在一个个面授吧。一般情况下都是由班干部统一收上去,然后抱到老师办公室的吧。我们每个人就相当于被代理的,而班干部就是我们的代理。也就是说,作业是班干部帮(代理)我们交到老师哪里的。这个过程就是代理的过程。好的,知道了代理,那么肯定就有静态代理和动态代理。静态代理:用上面的例子来说,就是班...原创 2019-03-06 11:11:14 · 230 阅读 · 0 评论 -
SpringMVC 工作原理分析
最近想深入了解一下SpringMVC的工作原理,在网上找到一篇特别好的博客,在此保存记录,方便查阅。特别申明,此博客转自:https://www.cnblogs.com/xiaoxi/p/6164383.htmlSpringMVC的工作原理图:SpringMVC流程1、 用户发送请求至前端控制器DispatcherServlet。2、 DispatcherServlet...转载 2019-03-04 10:44:23 · 270 阅读 · 0 评论 -
SpringAOP 浅析
SpringAop:面向切面编程(Aspect Oriented Programming)提供了另一种角度来思考程序的结构,通过这种方式弥补面向对象编程(Object Oriented Programming)的不足。除了类以外,AOP提供了切面,切面对关注点进行模块化,例如横切多个类型和对象的事务管理(这些关注点术语通常称作横切(crosscutting)关注点)。Spring AOP是Spri...原创 2019-03-04 16:07:22 · 464 阅读 · 0 评论 -
Mybatis 连接mysql数据库底层运行原理
工作中一直在用spring+springmvc+mybatis,只是知道它是用于持久层框架,但是一直不知道原理是什么,通过网上视频解释,自己做一个笔记,方便以后查阅。什么是mybatis:MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或...原创 2019-03-11 16:55:20 · 4011 阅读 · 0 评论 -
HashMap 原理分析
hashmap的底层结构如上图所示,主要是数组和链表组成。当我们创建一个hashmap对象之后,调用put方法的时候,首先通过key获取到一个hash值也就是hashcode,然后还会获取到一个所在数组的下标index,算法是:hashcode = key.hashcode();index = hashcode%数组长度-1;然后将得到的hashcode、index、key...原创 2019-03-08 13:18:06 · 311 阅读 · 0 评论 -
springmvc+logback 控制台打印mybatis执行的sql
今天mybatis中有个sql一直不知道有没有写对,所以需要打印mybatis中的sql来查看sql语句是否正确。在网上找了好多的资料,试过之后都是不能正常使用。试了好久终于能显示了,记录一下,以后方便回顾。1、在mybatis-conf.xml中的<configuration>、<settings>增加配置:<setting name="logImpl"...原创 2019-04-26 12:45:30 · 3202 阅读 · 0 评论 -
同步/异步/阻塞/非阻塞/BIO/NIO/AIO
常规的误区假设有一个展示用户详情的需求,分两步,先调用一个HTTP接口拿到详情数据,然后使用适合的视图展示详情数据。如果网速很慢,代码发起一个HTTP请求后,就卡住不动了,直到十几秒后才拿到HTTP响应,然后继续往下执行。这个时候你问别人,刚刚代码发起的这个请求是不是一个同步请求,对方一定回答是。这是对的,它确实是。但你要问它为什么是呢?对方一定是这样回答的,“因为发起请求后,代码就卡住不...转载 2019-05-08 09:23:42 · 172 阅读 · 0 评论 -
spring mvc redis消息队列
通常情况下,为了提高系统开发的灵活性和可维护度,我们会采用消息队列队系统进行解耦。下面是一个采用spring redis实现的消息队列实例,但此实例会由于网络延迟和阻塞等情况导致消息处理的延时,因而不能确保消息处理的顺序,所以使用时需要注意。pom.xml中添加如下配置添加版本配置<properties> <jedis.version>2.8.1</j...转载 2019-03-01 09:32:00 · 680 阅读 · 0 评论
分享