
java
文章平均质量分 78
似水流年
从事开发工作超过15年的it老兵,依然奋斗在一线开发。
工作中于JAVA和微软的.net开发为主,当前主要方向物联网+智慧城市
展开
-
Java面试题以及答案精选(架构师面试题)-基础题1
基础题一、String,StringBuffer,StringBuilder的区别是什么?String为什么是不可变的?1. String是字符串常量,StringBuffer和StringBuilder是字符串变量。StringBuffer是线程安全的,StringBuilder是非线程安全的。具体来说String是一个不可变的对象,每次修改String对象实际上是创新新对象,并将引用指向新对象。效率很低。StringBuffer是可变的,即每次修改只是针对其本身,大部分情况下比String..转载 2021-05-16 10:44:23 · 844 阅读 · 0 评论 -
docker、docker-compose、docker swarm和k8s的区别
DockerDocker 这个东西所扮演的角色,容易理解,它是一个容器引擎,也就是说实际上我们的容器最终是由Docker创建,运行在Docker中,其他相关的容器技术都是以Docker为基础,它是我们使用其他容器技术的核心。Docker-ComposeDocker-Compose 是用来管理你的容器的,有点像一个容器的管家,想象一下当你的Docker中有成百上千的容器需要启动,如果一个一个的启动那得多费时间。有了Docker-Compose你只需要编写一个文件,在这个文件里面声明好要启动的容器,转载 2021-04-21 17:46:23 · 536 阅读 · 0 评论 -
使用truelicense进行Java程序license控制 经过扩张可以验证license 开始结束日期,验证绑定给定mac地址
使用truelicense进行Java程序license控制经过扩张可以验证license开始结束日期,验证绑定给定mac地址。Truelicense 是一个开源的java license 验证项目。使用truelicense实现用于JAVA工程license机制(包括license生成和验证)请参考http://www.it165.net/pro/html/201404/11540.html其中包括license授权机制的原理和制作license的具体步骤本文主要是在此文...转载 2020-09-21 09:27:21 · 1912 阅读 · 0 评论 -
TDengine在图扑工业物联网监控平台中的应用
背景简介大连图扑物联科技有限公司是一家专注于物联网数据可视化解决方案的公司,致力于帮助企业快速搭建自己的物联网数据可视化监控平台,帮助企业有效降低研发成本和运维成本,缩短产品上市周期,旗下有多个业务产线包含(2D组态、3D组态、大屏设计、组态云、工业物联网云平台等)。IoTopo平台是其旗下主打产品之一,可应用于智能制造、智能建筑、智慧交通、智慧农业、智慧城市等多个行业和领域,为其行业提供应用解决方案、整体解决方案,并可以帮助企业打造自己...转载 2020-06-02 14:22:39 · 2681 阅读 · 0 评论 -
MySQL宕机?大数据驱动下的新零售,如何寻求存储计算的最优解?
小 T 导读:在TDengine还没推出之前,「每人店」一直使用MySQL来存储平台各种硬件采集的数据。为了提高数据展示效果,后台再将采集到的愿数据进行各个维度的计算,这样的计算导致MySQL频繁读写,为了保证各个维度数据的一致性,采用了MySQL事务,性能大受影响,经常会出现事务死锁,后切换至TDengine,各个维度的数据都不需要再计算,直接统计结果,省去了很多步骤。1 使用场景简介1.1 业务场景介绍每人店给客户提供的服务之一就是店铺的智能化管理,通过在各个门店安装我们的各类智能硬件传感设转载 2020-06-02 14:16:23 · 782 阅读 · 0 评论 -
CentOS7上使用源码安装物联网大数据平台TDengine
1、环境准备TDengine是涛思数据推出的一款开源的专为物联网、车联网、工业互联网、IT运维等设计和优化的大数据平台。除核心的快10倍以上的时序数据库功能外,还提供缓存、数据订阅、流式计算等功能,最大程度减少研发和运维的复杂度。目前,TDengine只支持在使用systemd做进程服务管理的linux系统上安装。用which命令来检测系统中是否存在systemdwhich systemd不支持systemd命令;只能使用源码安装了。2、源码下载源码下载地址为:https://gi转载 2020-06-02 14:14:18 · 858 阅读 · 0 评论 -
硬核! 逛了4年Github ,一口气把我收藏的 Java 开源项目分享给你!
Awsome JavaGreat Java project on Github(Github 上非常棒的 Java 开源项目).English Version大家都知道 Github 是一个程序员福地,这里有各种厉害的开源框架、软件或者教程。这些东西对于我们学习和进步有着莫大的进步,所以我有了这个将 Github 上非常棒的 Java 开源项目整理下来的想法。我会按照几个维度对项目进行分...转载 2019-12-19 09:17:41 · 683 阅读 · 0 评论 -
Minor GC和Full GC触发条件
一、Minor GC触发条件 1、eden区满时,触发MinorGC。即申请一个对象时,发现eden区不够用,则触发一次MinorGC。 注:新生代分为三个区域,eden space, from space, to space。默认比例是8:1:1。在MinorGC时,会把存活的对象复制到to space区域,如果to space区域不够,则利用担保机制进入老年代区域。...转载 2018-12-06 18:20:17 · 1107 阅读 · 0 评论 -
代码审计[java安全编程]
SQL注入介绍注入攻击的本质,是程序把用户输入的数据当做代码执行。这里有两个关键条件,第一是用户能够控制输入;第二是用户输入的数据被拼接到要执行的代码中从而被执行。sql注入漏洞则是程序将用户输入数据拼接到了sql语句中,从而攻击者即可构造、改变sql语义从而进行攻击。漏洞示例一:直接通过拼接sql@RequestMapping("/SqlInjection/{id}")public M...转载 2018-11-28 16:28:55 · 6431 阅读 · 0 评论 -
jvm的内存分布,参数配置 和 GC处理机制
转载url: http://blog.youkuaiyun.com/ning109314/article/details/10411495url:http://www.cnblogs.com/sunada2005/p/3577799.htmlurl:http://www.open-open.com/lib/view/open1437834571349.htmlurl:http://www.cn...转载 2018-12-01 14:23:46 · 867 阅读 · 1 评论 -
优化springboot
介绍在SpringBoot的Web项目中,默认采用的是内置Tomcat,当然也可以配置支持内置的jetty,内置有什么好处呢? 1. 方便微服务部署。 2. 方便项目启动,不需要下载Tomcat或者Jetty针对目前的容器优化,目前来说没有太多地方,需要考虑如下几个点线程数 超时时间 jvm优化针对上述的优化点来说,首先线程数是一个重点,初始线程数和最大线程数,初始线程数保障...转载 2018-12-01 14:17:52 · 531 阅读 · 0 评论 -
普罗米修斯 -- 快速构建你的业务监控平台
Prometheus是什么Prometheus(普罗米修斯)是一个名字非常酷的开源监控系统。它支持多维度的指标数据模型,服务端通过HTTP协议定时拉取数据后,通过灵活的查询语言,实现监控的目的。如上图,客户端记录相关指标数据,对外提供查询接口。Prometheus服务端通过服务器发现机制找到客户端,并定时抓取存储为时间序列数据。最后通过Grafana等图表工具集成展示。Prom...转载 2018-09-29 17:08:07 · 15964 阅读 · 0 评论 -
IDEA 快捷键大全
常用快捷键:alt +enter 导包ctrl + x 剪切Ctrl + d 快速复制Ctrl + c 复制Ctrl + y 删除alt + F4 关闭IDEActrl + shift + F 全文搜索 类似eclipse中的ctrl+Hctrl +alt +l 格式化 (L的小写)Ctrl + / 或 ctrl+shift +/ 注释Ctrl...原创 2018-09-27 18:13:00 · 1269 阅读 · 1 评论 -
maven中scope标签详解
前言最近在做itoo的pom优化工作,发现对于maven依赖管理中的scope标签还是有不明白的地方,所以今天就来总结一下这方面的知识,scope在maven的依赖管理中主要负责项目的部署maven的哲学在上次技术分享的时候也提到了:约定大于配置,所以在maven中,很多内容都有默认值,scope的默认值是compile,那么scope还能有哪些选项呢?scope的分类1.comp...转载 2018-08-02 17:07:29 · 566 阅读 · 0 评论 -
SpringCloud 整合Python
引言什么是sidecar1 Polyglot支持Sidecar官网描述11 使用Sidecar步骤12 Java调用非JVM程序接口13 非JVM接口调用Java接口2 Sidecar总结Python和SpringCloud整合实例1 定义Python服务2 定义SpringCloud注册中心3 定义sidecar4 定义Java服务5 服务相互调用51 调用Java原生服务52 Java调用Py...转载 2018-06-01 17:27:16 · 12368 阅读 · 0 评论 -
关于WebGIS开源解决方案的探讨
1.背景公司目前的多数项目采用的是ArcGIS产品+Oracle+WebLogic/Tomcat/APUSIC/WebShpere这样的架构。由于公司从事的是政府项目,甲方单位普遍均采购有以上产品,所以很多时候忽略购买以上产品所需要的费用。并且很多项目的推广,ARCGIS、IBM还有联通或者移动是公司的合作伙伴,涉及到商务问题,对开源的需求并不是很大。再则,政府项目一般侧重的是系统的稳定和易维...转载 2019-04-04 18:34:14 · 918 阅读 · 0 评论 -
字节跳动Java研发面试99题(含答案):JVM+Spring+MySQL+线程池+锁
根据 JVM 规范,JVM 内存共分为虚拟机栈、堆、方法区、程序计数器、本地方法栈五个部分。1. Java虚拟机栈:线程私有;每个方法在执行的时候会创建一个栈帧,存储了局部变量表,操作数栈,动态连接,方法返回地址等;每个方法从调用到执行完毕,对应一个栈帧在虚拟机栈中的入栈和出栈。2. 堆:线程共享;被所有线程共享的一块内存区域,在虚拟机启动时创建,用于存放对象实例。3. 方法区:线程共...转载 2019-07-05 11:53:53 · 6152 阅读 · 0 评论 -
IntelliJ IDEA插件 Alibaba Java Coding Guidelines
IntelliJ IDEA插件 Alibaba Java Coding Guidelines阿里巴巴编码规约插件Git Hub :https://github.com/alibaba/p3cIDEA插件下载地址:https://plugins.jetbrains.com/plugin/10046-alibaba-java-coding-guidelines阿里巴巴Jav...转载 2019-08-19 18:03:55 · 918 阅读 · 0 评论 -
java 跟.net webservice 互通问题(3)
跟国外公司的测试过程已经基本完成了,web service的互通问题也已经解决.需要注意的是:1,命名空间一定要一致2,必须确保两种web service的soap 包格式相同.下面用代码解释一下using System;using System.Collections.Generic;using System.Linq;using System.Web;using Syste原创 2011-06-14 17:05:00 · 2513 阅读 · 0 评论 -
本地缓存同步的一个简单方案
现在大部分系统使用的都是分布式缓存系统Redis。 但在一些场景下,比如缓存单元很大,单元数不多,变化很小,加载时间很长,如算法模型。 这个时候使用本地缓存比Redis的效率要高很多,但是又要保证集群中各个机器的缓存的一致性,不然就会出现请求耗时不稳定的情况,也有可能出现相同的请求不同服务器返回的结果不一致。本文介绍了一个简单的实现集群中同步各服务器本地缓存的方案。实现思路:集群各个...转载 2019-10-11 16:47:28 · 2553 阅读 · 0 评论 -
SpringCloud如何实现Eureka集群、HA机制
Spring Cloud是一系列框架的有序集合。它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用Spring Boot的开发风格做到一键启动和部署。Spring没有重复制造轮子,它只是将目前各家公司开发的比较成熟、经得起实际考验的服务框架组合起来,通过Spring Boot风格进行再封装屏蔽掉了...转载 2019-09-06 14:38:44 · 708 阅读 · 0 评论 -
springcloud 集群部署jar文件,shell脚本执行
本文主要是记录springcloud的注册中心的高可用、集群部署、项目打包jar文件编写shell脚本进行部署。首选我们准备一个注册中心jar包,里面有两个配置文件application-eureka1.properties:#服务端口server.port=1111#服务实例的host地址eureka.instance.hostname=eureka1#是否注册到其他服...转载 2019-09-06 14:35:50 · 723 阅读 · 0 评论 -
dubbo入门学习
最近项目用到Dubbo框架,临时抱佛脚分享一下共探讨。原文地址:http://www.cnblogs.com/Javame/p/3632473.html1. Dubbo是什么?Dubbo是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案。简单的说,dubbo就是个服务框架,如果没有分布式的需求,其实是不需要用的,只有在分布式的时候,才有dubbo...转载 2019-08-13 10:02:47 · 770 阅读 · 0 评论 -
SpringCloud实现Zuul集群(负载均衡)
前言:在微服务架构中,有一个组件可以说是必不可少的,那就是微服务网关,微服务网关处理了负载均衡,缓存,路由,访问控制,服务代理,监控,日志等。API网关在微服务架构中正是以微服务网关的身份存在。一般在微服务架构中,网关都是部署多个服务的,以实现负载均衡和保证高可用。一、使用 Nginx+Zuul 实现网关集群1.互联网公司中网关都是集群搭建集群: Nginx+Zuul 一...转载 2019-08-12 14:46:29 · 2857 阅读 · 0 评论 -
Swagger 常用注解使用详解
刚开始的时候,在controller层使用@RequestParam的时候,发现这个参数是必须要输入值的,但是我们有时候必须查询的时候允许参数为空,使用这个注解就不行了。在集成了swagger2后,找了半天的原因,发现使用@ApiImplicitParam这个注解可以解决这个问题。对应下面的参数。所以我们可以使用这个注解来解决我们所遇到的参考为空的问题。而且已经集成了swagg...转载 2019-08-19 18:26:15 · 989 阅读 · 0 评论 -
Swagger介绍及使用
导语:相信无论是前端还是后端开发,都或多或少地被接口文档折磨过。前端经常抱怨后端给的接口文档与实际情况不一致。后端又觉得编写及维护接口文档会耗费不少精力,经常来不及更新。其实无论是前端调用后端,还是后端调用后端,都期望有一个好的接口文档。但是这个接口文档对于程序员来说,就跟注释一样,经常会抱怨别人写的代码没有写注释,然而自己写起代码起来,最讨厌的,也是写注释。所以仅仅只通过强制来规范大家是不...转载 2019-08-19 18:12:50 · 964 阅读 · 0 评论 -
Dubbo和Spring Cloud微服务架构对比
微服务架构是互联网很热门的话题,是互联网技术发展的必然结果。它提倡将单一应用程序划分成一组小的服务,服务之间互相协调、互相配合,为用户提供最终价值。虽然微服务架构没有公认的技术标准和规范或者草案,但业界已经有一些很有影响力的开源微服务架构框架提供了微服务的关键思路,例如 Dubbo 和 Spring Cloud。各大互联网公司也有自研的微服务框架,但其模式都与这二者相差不大。微服务主要的优势降低复...转载 2018-05-28 10:43:44 · 816 阅读 · 0 评论 -
【Linux】CentOS7 常用命令集合
CentOS7 常用命令集合 这两天一直在对CentOS 7.2进行初体验,各种学习命令肿么用,不过其实大多和DOS是一样的,只是命令的表达上可能有点儿不一样,毕竟这些都不是一家出来的嘛~ 废话不多说,直接上命令和解析!常用命令文件与目录操作命令解析cd /home进入 ‘/home’ 目录cd ..返回上一级目录cd ../..返回上两级目录cd -返回上次所在目录c...转载 2018-05-14 14:42:28 · 578 阅读 · 0 评论 -
手把手教你整合最优雅SSM框架:SpringMVC + Spring + MyBatis
http://blog.youkuaiyun.com/qq598535550/article/details/51703190我们看招聘信息的时候,经常会看到这一点,需要具备SSH框架的技能;而且在大部分教学课堂中,也会把SSH作为最核心的教学内容。 但是,我们在实际应用中发现,SpringMVC可以完全替代Struts,配合注解的方式,编程非常快捷,而且通过restful风格定义url,让地址看起来非常优雅转载 2016-12-03 15:30:57 · 24281 阅读 · 12 评论 -
SSM框架——详细整合教程(Spring+SpringMVC+MyBatis)
使用SSM(spring、SpringMVC和Mybatis)已经有三个多月了,项目在技术上已经没有什么难点了,基于现有的技术就可以实现想要的功能,当然肯定有很多可以改进的地方。之前没有记录SSM整合的过程,这次刚刚好基于自己的一个小项目重新搭建了一次,而且比项目搭建的要更好一些。以前解决问题的过程和方法并没有及时记录,以后在自己的小项目中遇到我再整理分享一下。这次,先说说三大框架整合过程。个人认转载 2016-12-03 15:25:50 · 897 阅读 · 0 评论 -
关注java体系的技术方向
虽然现在一直在.net体系下工作,随着工作经验的积累。考虑架构的时候难免需要涉及到java开源体系的东东。就找找了java架构师的要求,如下:第一个:1.计算机相关专业,大专及以上学历,热爱互联网产品研发;2. 6年以上工作经验,有互联网应用开发经验,能够独立设计完整网站/系统;3. 熟悉JAVA、J2EE体系结构,熟练掌握主流开发框架(SpringMVC、Struts 、Freemarker、M原创 2016-06-04 16:37:35 · 3879 阅读 · 0 评论 -
深入解析java应用程序的一般架构(好文)
1. 不同系统不同语言之间的交互 现在我们常见的不同系统不同语言之间的交互使用WebService,Http请求。WebService,即“Web 服务”,简写为WS。从字面上理解,它其实就是“基于 Web的服务”。而服务却是双方的,有服务需求方,就有服务提供方。服务提供方对外发布服务,服务需求方调用服务提供方所发布的服务。如果说得再专业一点,WS 其实就是建立在HTTP 协议上实现异构系统转载 2016-06-04 15:37:04 · 7363 阅读 · 0 评论 -
纵论开发FrameWork框架,推荐Webwork+Ibatis+Spring
MVC领域的龙头老大自然非Struts莫属,五六年的发展,已经形成了MVC事实上的规范。现在普遍使用的是Struts1.2.9版本。Webwork不但继承了Struts的思想,更有所发展和简化。一个小系统甚至只需要一个Action控制器就足够了,相比而言,Struts1.2.9就逊色的多了。Struts1.2版本过于僵化,限制的太死,无形中增加了很多额外的开发工作。建立在webwork2基础上的S转载 2014-08-19 16:03:31 · 2093 阅读 · 0 评论 -
java中的引用和C++中的指针的区别我的理解
1.类型:引用其值为地址的数据元素,java封装了的地址,可以转成字符串查看,长度可以不必关心。C++指针是一个装地址的变量,长度一般是计算机字长,可以认为是个int。2.所占内存: 引用声明时没有实体,不占空间。C++指针如果声明后会用到才会赋值,如果用不到不会分配内存。3.类型转换:引用的类型转换,也可能不成功,抛异,或者IDE就不能通过。C++指针只是个内存地址,指向那里,对程序来说还都是一转载 2012-01-11 10:27:37 · 1420 阅读 · 0 评论 -
java 跟.net webservice 互通问题
最近忙一个跟国外公司合作的项目,国外公司提供的web service不是我用的.net 平台,折腾了良久,发现了不少问题,归纳一下,首先我这边拿到的是国外提供的wsdl 文件,我用microsoft的wsdl.exe 生成我需要的cs代码,通过这种方式来完成对国外web service的调用,用wsdl.exe ,如图所示:打开命令提示窗口后:这样我们就可以调用国外的web services了,但是请注意:微软生成的代码比wsdl中所定义的方法,属性多了不少的东西,就个人理解说明一下:1.为每一个方法提供了原创 2011-05-19 08:40:00 · 12113 阅读 · 1 评论 -
java和c#企业开发
来新公司半年了。 一直做.net c#开发,加上以前做.net 2年的开发经验,.net可以说是比较熟悉的东西了。思考一下公司用过的框架,可以说都是微软提倡的那种多层架构的模式即modal+dal+bll+common+web这种,新公司现在的框架应该说比较完善,把微软企业库加了进来。但总体架构还是那样了。前两天公司培训了一下java,java以前学过有段时间,并不陌生。公司是采用spri原创 2007-08-14 11:36:00 · 2202 阅读 · 0 评论 -
java 查找算法
// binarySearch.java// demonstrates recursive binary search// to run this program: C>java BinarySearchApp////////////////////////////////////////////////////////////////class ordArray { private lo原创 2007-04-26 16:54:00 · 5699 阅读 · 1 评论 -
java 栈,队列,链表,双链表,树
// stack.java// demonstrates stacks// to run this program: C>java StackApp////////////////////////////////////////////////////////////////class StackX { private int maxSize; // size of stac原创 2007-04-26 16:51:00 · 2370 阅读 · 0 评论 -
java 排序算法
// bubbleSort.java// demonstrates bubble sort// to run this program: C>java BubbleSortApp////////////////////////////////////////////////////////////////class ArrayBub { private long[] a;原创 2007-04-26 16:45:00 · 1627 阅读 · 0 评论 -
微服务架构
互联网保险O2O平台微服务架构设计 关于架构,笔者认为并不是越复杂越好,而是相反,简单就是硬道理也提现在这里。这也是微服务能够流行的原因,看看市场上曾经出现的服务架构:EJB、SCA、Dubbo等等,都比微服务先进,都比微服务功能完善,但它们都没有微服务这么深入民心,就是因为他们过于复杂。简单就是高科技,苹果手机据说专门有个团队研究如何能让用户更加简单的操作。大公司都是由小公司发展起来转载 2017-03-10 09:50:22 · 773 阅读 · 0 评论