Javaliu'Blog

  • 首页

  • 归档

  • 分类

  • 标签

  • 关于

  • 公益 404

跟我一起学习Vim--Vim简介

发表于 2016-11-30 | 更新于 2021-11-22 | 分类于 Vim

世界上有三种编辑器,EMACS、Vim和其他

Vim简介

Vim的意思是Vi IMprove 即,Vi改进版,以前是Vi IMitation 即,Vi模仿版
Vim在Vi的基础上做了很多改进,Vim文本编辑器包含了unix “Vi” 编辑器几乎所有的命令,并且还添加了很多新命令

为什么是Vim

以下两句对编辑器的最高评价足以:

阅读全文 »

跟我一起学习Vim--Vim插件管理工具Vundle

发表于 2016-11-30 | 更新于 2021-11-22 | 分类于 Vim

Vim插件管理神器 Vundle

在没有Vundle之前插件的安装以及升级是非常麻烦的一件事情,官网下载、解压、拷贝到VIM的安装路径等,这些步骤已经足够复杂,更不用说升级了。Vim的强大功能一部分源于大量的插件,仅仅管理插件就几乎成了一项不可完成的任务。好在Vimer们利用Vim本身的特性开发出了插件管理的神器–Vundle,再配合上GitHub,使得管理Vim插件变得异常的简单,好了,废话不多说了,直接安装体验一下吧。

阅读全文 »

故事中的设计模式-简单工厂

发表于 2016-11-15 | 更新于 2021-11-22 | 分类于 java

简单工厂设计模式,又叫静态工厂方法模式,工厂设计模式就是根据不同的参数生成不同的对象。

示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
interface Human{
public void talk();
public void walk();
}

public class Boy implements Human{
@Override
public void talk(){
System.out.println("Boy is talking...");
}

@Override
public void walk(){
System.out.println("Boy is walking...");
}
}

public class Girl implements Human{
@Override
public void talk(){
System.out.println("Boy is talking...");
}

@Override
public void walk(){
System.out.println("Boy is walking...");
}
}

public class HumanFactory{
public static Human createHuman(String name){
Human human = null;
if("boy".equals(name)){
human = new Boy();
}else if("girl".equals(name)){
human = new Girl();
}
return human;
}
//或者使用以下代码
public static Human createBoy(){
return new Boy();
}

public static Human createGirl(){
return new Girl();
}
}
阅读全文 »

Java 浅拷贝、深拷贝

发表于 2016-10-23 | 更新于 2021-11-22 | 分类于 java

主要介绍Java中的浅拷贝和深拷贝概念以及实例演示

浅拷贝

    浅拷贝又叫浅克隆,克隆主要是针对对象来说的,即在原有的对象基础之上再克隆出一份同样的对象。

  • 1.实现Cloneable接口
  • 2.重写Object类的clone方法

例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
public class Student implements Cloneable{
private String name;
private int age;
public Student(){
}
public Student(String name, int age){
this.name = name;
this.age = age;
}

public String getName(){
return this.name;
}
public void setName(String name){
this.name = name;
}

public int getAge(){
return this.age;
}
public void setAge(int age){
this.age = age;
}

//重写Object类的clone方法
protected Object clone(){
Object obj = null;
try{
//调用父类的clone方法
obj = super.clone();
}catch(CloneNotSupportedException e){
e.printStackTrace();
}
return obj;
}
}

public class ShallowCopy{
public static void main(String[] args){
Student student1 = new Strudent("zhangsan", 24);
Student student2 = (Student)student1.clone();

student2.setName("lisi");
System.out.println(student1.getName());
System.out.println(student2.getName());
}
}
最终测试结果输出如下:
zhangsan
lisi
阅读全文 »

故事中的设计模式-单例

发表于 2016-10-12 | 更新于 2021-11-22 | 分类于 java

单例设计模式
单例:顾名思义,某个类只能产生一个实例。
要点:1.构造方法私有化
2.必须自行创建这个类的实例
3.必须自行向系统中提供这个类的实例

1) 饿汉式

1
2
3
4
5
6
7
8
9
10
11
12
13
14
public class Singleton{
private static final Singleton instance = new Singleton();

private Singleton(){
//解决反射机制导致多个实例的问题
if(null != instance){
throw new RuntimeException("已存在该实例");
}
}

public static Singleton getInstance(){
return instance;
}
}
阅读全文 »

Java修饰符

发表于 2016-09-11 | 更新于 2021-11-22 | 分类于 java

Java修饰符简单讲解

private

表示成员是私有的,只有自身可以访问

protected

表示受保护权限,子类可以访问父类受保护的权限,同时相同的包内也可以访问

默认

表示包访问级别,即相同包内的可以访问

public

表示是公开的,其他所有类都可以访问

跟我一起学习Vim--Vim简单使用

发表于 2016-08-12 | 更新于 2021-11-22 | 分类于 Vim

Vim 一些简单使用,打开文件,关闭文件,移动光标,删除命令等

1. 打开文件

1
2
3
vim +#	:打开文件,并定位到某行
vim + :打开文件,定位到最后一行
vim +/PATTERN :打开文件,定位到第一次被PATTERN匹配到的行的行首

2. 关闭文件

末行模式关闭文件

1
2
3
4
5
:q	退出
:wq 保持退出
:q! 不保存退出
:w 保存
:w! 强行保存

编辑模式下退出

1
ZZ	保存退出

阅读全文 »

Java内部类

发表于 2016-07-12 | 更新于 2021-11-22 | 分类于 java

java内部类分为两种,静态内部类和非静态内部类。根据使用位置和方式的不同,非静态内部类
可分为:一般内部类、局部内部类(方法区内部类)、匿名内部类。

非静态内部类

    类似于外部类的成员变量或者成员方法(实例变量、实例方法)。

一般内部类

1) 内部类可以访问外部类私有的成员变量

1
2
3
4
5
6
7
8
9
public class OuterClass{
private String name;

private class InnerClass{
public void display(){
System.out.println("out class name is :" + name);
}
}
}

2) 使用内部类必须先实例化外部类
3) 声明内部类时,可加public、protected、private或者默认修饰符,规则同类修饰符一样

阅读全文 »

eclipse 插件 viPlugin

发表于 2015-12-13 | 更新于 2021-11-22 | 分类于 tools

今天向大家推荐一款eclipse插件viPlugin,对于熟悉vi编程的人来说真是太好了,此插件一定可以大大提高你的编码效率,废话少说,咱们先来认识一下此插件

1. viPlugin是什么

viPlugin是一个eclipse针对vi的插件,使用此插件可以让你在使用eclipse的时候使用vi命令,极大的提高开发效率,百利无一害。

2. viPlugin的安装
1
2
3
4
5
6
7
2.1 点击eclipse中的help –> Install New Software…
2.2 在弹出的窗口中点击Add。添加网址:http://www.viplugin.com/,Name随便输入,点击OK
2.3 选中Eclipse Commander,ScriptEclipse,viPlugin,点击Next,直到Finish
2.4 重启eclipse,重启之后会提示找不到文件,因为此插件是收费的,需要付费才能使用。
2.5 viPlugin的破解,在eclipse的安装目录下面创建文件,viPlugin2.lic
2.6 打开此文件输入一下序列号,q1MHdGlxh7nCyn_FpHaVazxTdn1tajjeIABlcgJBc20
2.7 重启eclipse,viPlugin破解成功

史上最全的Shadowsocks配置

发表于 2015-10-18 | 更新于 2021-11-22 | 分类于 tools

前言

鉴于形式越来越严峻,越来越多的人购买VPN进行翻墙,但是有时候VPN好像并不是那么理想。新的翻墙方案诞生了,就是Shadowsocks。当然可以购买Shadowsocks账号或者自己购买VPS(Virtual private server)来搭建Shadowsocks服务器。有如下几个原因:第一,安全(仅仅是相对的),VPN可能对我的上网记录或者内容做一些其他操作。第二,稳定(前提是选择一个好的VPS供应商),第三,自己可控。第四,购买VPS自己还可以搭建网站(对于专业程序员来说)

VPS供应商的选择

我选择的是linode,我推荐linode(https://www.linode.com/),这比其他家可能贵点,但是速度是很快的。购买时,最好先对服务器进行测试,一般是选择日本机房,日本机房速度还是比较快的,但是相对于其他机房来说,日本机房比较火爆,一般无货。我当时是选择的新加坡(当时日本机房无货)。一下两家可能也可以,DigitalOcean,搬瓦工,这两家我没有用,据说比linode便宜点, 具体不做评论。还有一家Vultr(https://www.vultr.com/)我也购买了VPS但是没有搭建成功。可能是我个人操作原因或者其他。注意:绝对没有做广告的意思

阅读全文 »
1…4567
javaliu

javaliu

学习总结 思考感悟

68 日志
16 分类
128 标签
GitHub 微博 JVM 指南 宝库 Redis
© 2021 javaliu
京ICP备2020046604号