什么是微服务 微服务极大的改变了服务端引擎的架构方式;
微服务不是一个单一的巨型的用来托管应用程序所有业务逻辑的代码库,而是反映了分布式系统模型,在该模型中,一组应用程序组件协同工作来满足业务需求;
通过遵循十项基本的微服务最佳实践,你可以实现一个高效的微服务生态系统,从而避免不必要的架构复杂性.
单一责任原则 就像代码中的类一样,它仅仅在单个原因情况下改变,微服务也是采用类似的方式建模;
构建可能会改变一个以上的业务这种臃肿的服务是一个非常不好的实践.
例如:你正在构建用于订购披萨的微服务;
你可以基于功能构建下面这些组件,诸如InventoryService,OrderService,P
2020-11-19
3025
Java
查看更多
什么是内部类
把类定义在另一个类的内部,该类就被称为内部类.
非常重要的一点是,内部类能够访问外部类的所有成员,包括private修饰的.
为什么需要内部类 Java的内部类让我很容易的想起来JavaScript的闭包,闭包就是定义在一个函数内部的函数——这听起来和Java的内部类定义一样一样的.
本质上,闭包是将函数内部与函数外部连接起来的桥梁.
内部类一样,它是将内部类与外部类连接起来的桥梁.
内部类有何优势
内部类可以直接访问外部类中的成员(包括私有成员),
内部类可以独立地继承一个抽象类或者实现一个接口,无论外部类是否也这样做了,对内部类都没有影响.
可以模拟实现多继承
我们知
2019-07-02
1341
Java
查看更多
什么是 IDEA IDEA 全称 IntelliJ IDEA,是java编程语言开发的集成环境;
IntelliJ在业界被公认为最好的java开发工具,尤其在智能代码助手、代码自动提示、重构、JavaEE支持、各类版本工具(git、svn等)、JUnit、CVS整合、代码分析、 创新的GUI设计等方面的功能可以说是超常的;
IDEA是JetBrains公司的产品,这家公司总部位于捷克共和国的首都布拉格,开发人员以严谨著称的东欧程序员为主;
它的旗舰版本还支持HTML,CSS,PHP,MySQL,Python等。免费版只支持Java,Kotlin等少数语言.
如何安装 IDEA 破解版 本文有
2018-10-26
1211
Java
查看更多
下载地址 百度网盘链接: https://pan.baidu.com/s/1TvMYmO0BvKE-tr-VMRkyTg
密码: gpot
打开镜像文件 打开dmg镜像文件,将“IntelliJ IDEA”拖入到“Applications”应用文件夹中进行安装;
安装完成不要运行 回到安装镜像文件的界面;
打开“Crack”文件夹,将文件夹目录下的“JetbrainsCrack.jar”复制到软件的安装目录下,
mac默认目录为 【Application/IntelliJ IDEA.app/Contents/bin】
编辑idea.vmoptions文件 在【Application/In
2018-10-19
1780
Java
查看更多
下载安装jdk 官网去下载jdk:
https://www.oracle.com/index.html 进入官网,按照如下步骤进行下载
本文以jdk11为例
选择下载 mac 版本
双击安装
配置环境变量 查看是否安装成功:
java --version
显示如下,表示安装成功.
$ java --version
java 11.0.3 2019-04-16 LTS
Java(TM) SE Runtime Environment 18.9 (build 11.0.3+12-LTS)
Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.3
2018-09-09
2005
Java
查看更多
#内置数据类型
java语言提供了八种基本类型;
六种数字类型(四个整数型,两个浮点型);
一种字符类型,还有一种布尔型.
byte: byte 数据类型是8位、有符号的,以二进制补码表示的整数;
最小值是 -128(-2^7);
最大值是 127(2^7-1);
默认值是 0;
byte 类型用在大型数组中节约空间,主要代替整数,因为 byte 变量占用的空间只有 int 类型的四分之一;
例子:byte a = 100,byte b = -50。
short: short 数据类型是 16 位、有符号的以二进制补码表示的整数
最小值是 -32768(-2^15);
最大值是 32767(
2018-07-15
1257
Java
查看更多
什么是 ArrayList ArrayList 类位于 java.util 包中;
是一个可以动态修改的数组,与普通数组的区别就是它是没有固定大小的限制,我们可以添加或删除元素;
它继承了 AbstractList ,并实现了 List 接口.
语法格式 import java.util.ArrayList; // 引入 ArrayList 类
ArrayList<E> objectName =new ArrayList<>(); // 初始化
E为泛型数据类型,用于设置 objectName 的数据类型,只能为引用数据类型
objectName:
2018-07-06
1385
Java
查看更多
final 保留字概述 final关键字在java中非常重要,它可以应用于类、方法以及变量;
final经常和static一起使用来声明常量,你也会看到final是如何改善应用性能的。
final 的含义 final在Java中是一个保留的关键字,可以声明成员变量、方法、类以及本地变量;
一旦你将引用声明作final,你将不能改变这个引用了,编译器会检查代码,如果你试图将变量再次初始化的话,编译器会报编译错误.
final 定义的变量 凡是对成员变量或者本地变量(在方法中的或者代码块中的变量称为本地变量)声明为final的都叫作final变量;
final变量经常和static关键字一起使用
2018-05-15
1276
Java
查看更多
static 概述 在程序中任何变量或者代码都是在编译时由系统自动分配内存来存储的,而所谓静态就是指在编译后所分配的内存会一直存在,直到程序退出内存才会释放这个空间,只要程序在运行,那么这块内存就会一直存在;
static 定义的类成员 可以直接访问 在Java程序里面,所有的东西都是对象,而对象的抽象就是类,对于一个类而言,如果要使用他的成员,那么普通情况下必须先实例化对象后,通过对象的引用才能够访问这些成员,但是用static修饰的成员可以通过类名加“.”进行直接访问.
static 独立于类的其他成员 任何实例共享 static修饰的成员变量和成员方法独立于该类的任何对象;
它不依赖类
2018-04-08
1321
Java
查看更多
Mac 键盘符号和修饰键 ⌘ ——> Command
⇧ ——> Shift
⌥ ——> Option
⌃ ——> Control
↩︎ ——> Return/Enter
⌫ ——> Delete
⌦ ——> 向前删除键(Fn + Delete)
↑ ——> 上箭头
↓ ——> 下箭头
← ——> 左箭头
→ ——> 右箭头
⇞ ——> Page Up(Fn + ↑)
⇟ ——> Page Down(Fn + ↓)
⇥ ——> 右制表符(Tab键)
⇤ ——> 左制表符(Shift + Tab)
⎋ —
2018-01-22
1248
Java
查看更多
char charAt(int index) 返回给定位置的代码单元。除非对底层的代码单元感兴趣, 否则不需要调用这个
方法。
int codePointAt( int Index) 5.0 返回从给定位置开始的码点。
int offsetByCodePoints(int startlndex, int cpCount) 5.0 返回从 startlndex 代码点开始, 位移 cpCount 后的码点索引。
int compareTo(String other) 按照字典顺序, 如果字符串位于 other 之前, 返回一个负数; 如果字符串位于 other 之
后, 返回一个正数; 如果两
2017-12-20
1317
Java
查看更多
java中的集合类Collection Collection是最基本的集合接口;
一个Collection代表一组Object,即Collection的元素;
它是一个接口,是高度抽象出来的集合,它包含了集合的基本操作:
添加、删除、清空、遍历(读取)、是否为空、获取大小等,如下语法.
语法 public interface Collection<E> extends Iterable<E> {}
iterator接口 不论Collection的实际类型如何,它都支持一个iterator()的方法,该方法返回一个迭代子,使用该迭代子即可逐一访问Collection中
2017-12-05
1282
Java
查看更多
模拟一个枚举类 日常我们遇到用一个静态类来定义常量
public class Weekday {
public static final int SUN = 0;
public static final int MON = 1;
public static final int TUE = 2;
public static final int WED = 3;
public static final int THU = 4;
public static final int FRI = 5;
public static final int
2017-09-05
1389
Java
查看更多
定义 String是不可变字符
StringBuffer是可变的字符
StringBuilder也是可变的字符
StringBuffer和StringBuilder的区别 StringBuffer对象是线程安全的,这意味着StringBuffer对象可以同时被多个并行线程修改,因为它所有的方法都被声明为"synchronized(同步)";
StringBuilder类是JDK1.5版引入的非线程安全的类,这意味着它的所有方法都是非同步方法;
因此,在单一模型的应用中,我们应该使用StringBuilder,这样对象不会有锁定和解锁,这样性能就会增加;
如何选择Strin
2017-07-22
1309
Java
查看更多
Mac键盘符号和修饰键说明 ⌘ Command
⇧ Shift
⌥ Option
⌃ Control
↩︎ Return/Enter
⌫ Delete
⌦ 向前删除键(Fn+Delete)
↑ 上箭头
↓ 下箭头
← 左箭头
→ 右箭头
⇞ Page Up(Fn+↑)
⇟ Page Down(Fn+↓)
Home Fn + ←
End Fn + →
⇥ 右制表符(Tab键)
⇤ 左制表符(Shift+Tab)
⎋ Escape (Esc)
编辑 Control + Space 基本的代码补全(补全任何类、方法、变量)
Control + Shift + Space 智能代码补全(过滤器方法列
2017-07-11
1282
Java
查看更多
什么是java中的抽象方法 抽象方法是一种特殊的方法:
它只有声明,而没有具体的实现
例如:
abstract void eat();
上面定义了一个方法 eat() ,有修饰关键词 abstract ,而且只有方法签名,没有方法的具体实现,
这就是一个java中的 抽象方法.
我们可以看到关键词 abstract 前面再没有任何修饰关键词 [ public , protected 或者 private ]
为什么不能有修饰关键词,我们留到下面再讲.
什么是java中的抽象类 一个类含有抽象方法,则称这个类为抽象类
抽象类必须由关键词 abstract 修饰;
我们来看一个抽象类的示例:
2017-06-21
1211
Java
查看更多
什么是java中的块级作用域 一对大括号括起来的代码区域叫做一个块级作用域;
{...} 在块级中定义的变量被称作局部变量;
局部变量的生命周期:从被定义的位置开始,到本块结束.
注意事项
一个块可以嵌套在另一个块中
子块可以访问父块中的变量的
父块不能访问子块的变量
子块不能定义与父块同名的变量
在不嵌套的块中可以定义同名的变量;
public class com.yijiebuyi
{
public static void main(String args[])
{
{
int k = 1;
2017-04-19
1803
Java
查看更多
项目名 命名规范 全部小写
如:yijiebuyi , helloworld
package 包名命名规范 强烈推荐使用公司或机构的顶级域名为包名的前缀;
包名的前几个为固定名称, 如果是网站的话,采用网站的域名的反写;
package 包名全部为小写字母,以符号(. )来分隔, 但是不能包含*号,具有实际的区分意义.
如:
com.yijiebuyi.blog //博客系统
com.yijiebuyi.wechat //微信H5服务站
要求
有意义的名词
传达其用途
结合模块名来命名
使用范例 应用系统中经常应用分层,Dao层(数据库访问)、Service层(业务处理)、Web层(页
2016-10-19
1473
Java
查看更多