jshell,是JavaJDK9这个大版本更新以来,带来的一个轻量级小工具.我们再也不用进入Java目录,编写一个Java文件,然后再去编译,最后才能执行它. 这里,你可以直接写一个小功能,就能去实现它.这就是jshell带来的一个小便利. 介绍:jshell这是Java用来写脚本的轻量小工具.   直接输入:jshell进入 退出: 输入/exit   记得一定要加/ 对于byte/short/char/三种类型来说,如果右侧赋值的数值没有超过范围, 那么Javac编译器将会自动隐含的为我们补…
在微服务流行的今天,我们会从纵向和横向分解代码的逻辑,将一些独立的无状态的代码单元实现为微服务,可以将它们发布到一些分布式计算单元或者Docker中,并在性能需要的时候及时地创建更多的服务单元.微服务是一个概念,并没有规定服务的格式,但是很多厂商和框架都不约而同的采用RESTful的架构,尽管也有一些其它的性能很好的RPC框架.如何在Java生态圈选择一个轻量级的RESTful框架?就我个人而言,我选择框架的理由很简单: 简单,轻量级 性能好 稳定,可靠 易于开发和维护 我会首选遵循Java规范…
前几天写了一个简单的翻译小工具,是基于有道翻译的,不过那个翻译接口有访问限制,超过一定次数后会提示访问过于频繁,偶然发现百度翻译API如果月翻译字符少于200万是不收取费用的,所以就注册了一个百度开发者账号,把当前翻译接口替换为百度翻译接口. 1.首先注册一个百度个人开发者账号 http://api.fanyi.baidu.com/api/trans/product/index 注册完成后会得到一个APP ID和密钥 2.打开“文档与支持/通用翻译API技术文档” 这里面介绍了如何调用百度翻译接…
前言 GitHub应该是广大开发者最常去的站点,这里面有大量的优秀项目,是广大开发者寻找资源,交友学习的好地方.尤其是前段时间GitHub公布了一项代码存档计划--Arctic Code Vault,要把代码埋入地下250米深的永久冻土层,可以将代码保存一千年.此外,GitHub 还为开发者在配置文件中设计了纪念徽章. 想想自己的代码可以作为人类的技术瑰宝被保存一千年,是不是有点自豪呢. 好了,言归正传. 虽然GitHub没有被墙,但是由于CDN服务器都在国外,所以国内访问GitHub的速度实在…
时间是把杀狗刀 突然发现了12年用java写的控制台玩的一个文字游戏,有兴趣的可以下载试试哈汪~ 里面难点当时确实遇到过,在计算倒计时的时候用了多线程,当时还写了好久才搞定.很怀念那个时间虽然不会做游戏,但是还是希望能写一些好玩的程序出来的时光. 下载地址:https://share.weiyun.com/5ybk4y0 也欢迎吐槽哈…
初码Azure系列文章目录 将消息队列技术模型简化,并打造成更适合互联网+与敏捷开发的云服务模式,好像已经是行业趋势,阿里云也在推荐使用消息服务(HTTP协议为主)而来替代消息队列(TCP协议.MQTT协议为主),并且将消息服务纳入到了存储体系内(Azure也是,有人知道为什么吗,是因为数据持久化在了磁盘上?) 更搞笑的是,阿里云还在帮助中心贴了一个表格 真是扎心了老铁,这不是自己怼自己,逼人用消息服务吗.. 回到本文主题上来,这几天用了Azure的存储服务里面的存储队列,感觉还是非常好用的,大…
1.除法运算 编程的人都知道,java中的“/”.“%”运算,其中前者为取整,后者取余数.那么有没有快捷的运算方法取正常的运算结果呢? 查了资料,发现很简单.代码如下: public static String txfloat(int a,int b) { DecimalFormat df=new DecimalFormat("0.00");//设置保留位数 return df.format((float)a/b); } 2.有双引号的String 3.判断2个字符串是否相等…
有时候我们在开发时遇到一些陌生的英文单词或者不容易看出某些长句的中文意思时该怎么办呢?打开桌面上的翻译软件?打开浏览器里收藏着的翻译网址或者直接贴上百度的搜索框去查?这些方法固然可以,还很常见,但如果是 linux 系统的话,很难找到像 windows 上那些公司级别来开发的成熟的翻译软件,所以只能打开浏览器来查了.浏览器一般都会装上一些翻译插件,比如我常用的 chrome 的 划词翻译,直接用这些插件来进行翻译比起打开一个翻译网站或者百度google搜索要更快,毕竟因为加载的内容更少,但这终究…
JDK内置工具使用 一.javah命令(C Header and Stub File Generator) 二.jps命令(Java Virtual Machine Process Status Tool) 三.jstack命令(Java Stack Trace) 四.jstat命令(Java Virtual Machine Statistics Monitoring Tool) 五.jmap命令(Java Memory Map) 六.jinfo命令(Java Configuration Inf…
java 泛型深入之Set有用工具 各种集合泛型深入使用演示样例,匿名内部类.内部类应用于泛型探讨 //Sets.java package org.rui.generics.set; import java.util.HashSet; import java.util.Set; /** * 一个Set有用工具 * @author lenovo * */ public class Sets { public static<T> Set<T> union(Set<T> a,…
前言: 本章介绍自己写的基于java.util.logging的轻量级日志记录库(baseLog). 该版本的日志记录库犹如其名,baseLog,是个实现日志记录基本功能的小库,适合小型项目使用,方便快捷,简单实用,没有使用缓冲区,日志写出操作都是同步操作. 很早就想过要写两个日志记录器,一个用于大项目(logGuide),解决多线程模型下的日志记录并发性能问题:一个是基于Java的logging库写的简单同步日志记录,适合小项目,简单.便捷. 之前写过一个logGuide,该日志记录系统没有使…
一.简介: Elite Container是DELPHI下的一个轻量级IoC对象容器(IoC:Inverse of Control,反转控制).它是参考了Java中的Spring框架(主要是配置文件的写法),并结合DELPHI的特点来构建的.相比Spring的对象容器,它提供的功能更为精简常用(如对象延迟创建.对象属性自动注入等),降低了学习的难度,并且提供了很多扩展点,你只需简单地写一个插件实现类,并在配置文件中进行简单配置,就可以让Elite Container拥有你的自定义功能! Elit…
基于Netty和SpringBoot实现一个轻量级RPC框架-协议篇 前提 最近对网络编程方面比较有兴趣,在微服务实践上也用到了相对主流的RPC框架如Spring Cloud Gateway底层也切换为Reactor-Netty,像Redisson底层也是使用Netty封装通讯协议,最近调研和准备使用的SOFARpc也是基于Netty封装实现了多种协议的兼容.因此,基于Netty造一个轮子,在SpringBoot的加持下,实现一个轻量级的RPC框架.这篇博文介绍的是RPC框架协议的定义以及对应的…
使用Xcode做iOS项目,经常会和Xib文件打交道,因为Xib文件直观的展现出运行时视图的外观,所以上手非常容易,使用也很方便,但对于从未用纯代码写过视图的童鞋,多数对Xib的理解有些片面. Xib文件是什么? A nib file describes the visual elements of your application’s user interface, including windows, views, controls, and many others. It can also…
为什么会想通过Netty构建一个HTTP代理服务器?这也是笔者发表这篇文章的目的所在. 其主要还是源于解决在日常开发测试过程中,一直困扰测试同学很久的一个问题,现在我就来具体阐述一下这个问题. 在日常开发测试过程中,为了确保上线项目的万无一失,集成测试通常有部署,测试环境和回归环境这两套环境.开发人员根据需求编写代码模块,自测通过之后,由测试的同学更新到测试环境,进行测试.如果测试通过,确定项目具备上线条件,后续会在回归环境,进行回归测试.回归验证通过的项目,才具备上线条件. 由于模块的复杂性和…
MAC自带的jdk1.6是苹果公司自己修改的jdk版本,被广泛应用于各种mac软件,具有不可替代性:同时,java1.7和1.8有时也需要用到.因此,在mac上安装.使用多个版本的java具有重要意义.以下以1.6和1.8为例介绍安装.使用方法. 1.从JAVA官网下载jdk1.8或者jre1.8的安装包,点击安装.这一步过后,在命令行输入java -version仍然显示为1.6,因为1.8虽然被安装了,但是并没有配置. 2.把/usr/libexec中的java_home文件删除.该文件记录…
ZeroMQ是一个轻量级的消息通信组件,尽管名字中包含了"MQ",严格上来讲ZeroMQ并不是"消息队列/消息中间件".ZeroMQ是一个传输层API库, 更关注消息的传输.与消息队列相比,ZeroMQ有以下一些特点: 点对点无中间节点 传统的消息队列都需要一个消息服务器来存储转发消息.而ZeroMQ则放弃了这个模式,把侧重点放在了点对点的消息传输上,并且(试图)做到极致.以为消息服务器最终还是转化为服务器对其他节点的点对点消息传输上.ZeroMQ能缓存消息,但是是…
简介 项目主页:https://github.com/atomicobject/objection 实例下载: https://github.com/ios122/ios122 Objection 是一个轻量级的Objective-C依赖注入框架,可同时用于MacOS X 或者iOS.对于那些使用过Guice(一个Java依赖注入框架)的开发者,会感觉Objection 似曾相识.Objection用来以一种相对容易接受的方式来使你尽可能地不需要管理一个庞大的XML容器或者手动创建对象. 特点…
NET Core写了一个轻量级的Interception框架[开源] ASP.NET Core具有一个以ServiceCollection和ServiceProvider为核心的依赖注入框架,虽然这只是一个很轻量级的框架,但是在大部分情况下能够满足我们的需要.不过我觉得它最缺乏的是针对AOP的支持,虽然这个依赖注入框架提供了扩展点使我们可以很容易地实现与第三方框架的集成,但是我又不想“节外生枝”,为此我们趁这个周末写了一个简单的Interception框架来解决这个问题.通过这个命名为Dora.…
java nio的一个严重BUG Posted on 2009-09-28 19:27 dennis 阅读(4588) 评论(5)  编辑  收藏 所属分类: java .源码解读      这个BUG会在linux上导致cpu 100%,使得nio server/client不可用,具体的详情可以看这里http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6403933 .令人失望的是这个BUG直到jdk 6u4才解决,sun的拖沓让人难以相信.…
为了更好的学习java,我打算下载个eclipse 地址:https://www.eclipse.org/downloads/packages/ 我们需要下载的版本是Eclipse IDE for Java Developers  根据操作系统是Windows.Mac还是Linux,从右边选择对应的下载链接. 下载好后解压 下载并安装完成后,第一次运行时,会让新建一个工作空间,我直接用了默认的路径在c盘用户下的workspace下 我们启动Eclipse,对IDE环境做一个基本设置: 选择菜单“…
ZeroMQ——一个轻量级的消息通信组件 ZeroMQ是一个轻量级的消息通信组件,尽管名字中包含了"MQ",严格上来讲ZeroMQ并不是"消息队列/消息中间件".ZeroMQ是一个传输层API库, 更关注消息的传输.与消息队列相比,ZeroMQ有以下一些特点: 点对点无中间节点 传统的消息队列都需要一个消息服务器来存储转发消息.而ZeroMQ则放弃了这个模式,把侧重点放在了点对点的消息传输上,并且(试图)做到极致.以为消息服务器最终还是转化为服务器对其他节点的点对点…
Jodd介绍 Jodd是对于Java开发更便捷的开源迷你框架,包含工具类.实用功能的集合,总包体积不到1.7M. Jodd构建于通用场景使开发变得简单,但Jodd并不简单!它能让你把事情做得更好,实现你的想法,让你享受编码的乐趣. 简而言之,如果你准备造轮子,先看看Jodd实现了没.你可以把Jodd想象成Java的"瑞士军刀",不仅小,锋利而且包含许多便利的功能. Jodd提供的功能 提供操作Java bean, 可以从各种数据源加载 Bean, 简化 JDBC 的接连与代码, 剖析…
阿里开源自用 OpenJDK 版本,Java 社区迎来中国力量 3 月 21 日,阿里巴巴将宣布开源 Alibaba Dragonwell.届时,开发者可通过阿里云开发者中心及 Github 社区下载使用.InfoQ 记者独家专访了阿里云智能基础产品事业部资深技术专家李三红.阿里云智能基础产品事业部研究员 Kingsum Chow (周经森),听他们如何看待 Alibaba Dragonwell 与 Java 归途. 作者 | 赵钰莹受访嘉宾 | 阿里云智能基础产品事业部资深技术专家 李三红阿里…
目录1.UITableView滑动卡顿的优化 2.右滑手势返回 3.添加页面统计 4.debug版和release版 5.关于页面刷新 6.关于页面布局 7.推荐博客 遇到问题和解决方案 本文是Java转iOS-第一个项目总结(1)?的内容补充,分析遇到的一些问题和解决方案,分享一些收获. 1.UITableView滑动卡顿的优化 因为 `UITableView`的cell中有很多图片,在4/4s上滑动比较卡,最开始觉得是机器太老了,但是对比微信和QQ空间,发现还是我们的问题,所以后期进行了优化…
前提 前置文章: Github Page:<基于Netty和SpringBoot实现一个轻量级RPC框架-协议篇> Coding Page:<基于Netty和SpringBoot实现一个轻量级RPC框架-协议篇> 在前置的<基于Netty和SpringBoot实现一个轻量级RPC框架-协议篇>一文中已经定义了一个相对简单的RPC私有协议,并且实现了对应的编码和解码模块.这篇文章基于协议篇,完成Server端代码调用的编写.考虑到目前相对主流的IOC容器是Spring,这…
前提 前置文章: <基于Netty和SpringBoot实现一个轻量级RPC框架-协议篇> <基于Netty和SpringBoot实现一个轻量级RPC框架-Server篇> 前一篇文章相对简略地介绍了RPC服务端的编写,而这篇博文最要介绍服务端(Client)的实现.RPC调用一般是面向契约编程的,而Client的核心功能就是:把契约接口方法的调用抽象为使用Netty向RPC服务端通过私有协议发送一个请求.这里最底层的实现依赖于动态代理,因此动态代理是动态实现接口的最简单方式(如果…
前提 前置文章: <基于Netty和SpringBoot实现一个轻量级RPC框架-协议篇> <基于Netty和SpringBoot实现一个轻量级RPC框架-Server篇> <基于Netty和SpringBoot实现一个轻量级RPC框架-Client篇> 前一篇文章简单介绍了通过动态代理完成了Client端契约接口调用转换为发送RPC协议请求的功能.这篇文章主要解决一个遗留的技术难题:请求-响应同步化处理. 需要的依赖如下: JDK1.8+ Netty:4.1.44.F…
使用java基础实现一个简陋的web服务器软件 1.写在前面 大学已经过了一年半了,从接触各种web服务器软件已经有一年多了,从大一上最开始折腾Windows电脑自带的IIS开始,上手了自己的第一个静态网站,从此开启了web方向学习的兴趣.到现在,从陪伴了javaweb阶段的Tomcat走来,也陆续接触了jetty,Nginx等web服务器软件.但是,这些web服务器的软件也一直都是开箱即用,从未探究过其背后的原理.今天,尽量用最简单的java代码,实现一个最简陋的web服务器软件,揭开web服…
使用Java语言编写一个五子棋UI界面并实现网络对战功能(非局域网) 一,前期准备 1,Java IDE(Eclipse)与JDK的安装与配置jdk-15.0.1-免配置路径版提取码:earu免安装版Eclipse 解压即可使用提取码:5iyy 网络上很多配置jdk的方法,我不再重复 这里提供一种便捷操作的方法(针对新手) 由于高版本jdk不需要手动配置路径,将我上传的jdk资源下载后一键安装,路径即可自动配置 2,一台云主机 阿里云,腾讯云,华为云的云主机均可,我用的是windows系统 (w…