InfoTech

Various Information Process
信息技术


  • 首页

  • 标签

  • 分类

  • 归档

  • 搜索

Git介绍

发表于 2019-01-19 | 分类于 工具
  • Git介绍
  • git安装连接github教程
  • 问题解决
  • 版本还原
  • Git暂存管理
  • 放弃本地某个文件的修改谨慎使用
  • 子模块无法提交问题
  • 远程库强制覆盖本地库
    • 1. git强制覆盖多条
    • 2. git强制覆盖本地命令单条
  • GitHub
  • Git腾讯云Coding
    • 使用命令创建仓库
    • 使用命令行推送已存在的仓库
  • 其他扩展功能
    • 忽略本地的工程内文件或目录
  • Git常用命令

Git介绍

  1. svn是集中式,git是分布式
  2. github会保存本地git的所有操作记录

git与svn的区别:

  • git是分布式
  • Git下载下来后,在OffLine状态下可以看到所有的Log,SVN不可以
  • 克隆一份全新的目录以同样拥有五个分支来说,SVN是同时复制5个版本的文件,也就是说重复五次同样的动作。
  • 版本库(repository):SVN只能有一个指定中央版本库
  • 分支(Branch)在SVN,分支是一个完整的目录。且这个目录拥有完整的实际文件。而 Git,每个工作成员可以任意在自己的本地版本库开无限个分支。
  • 提交(Commit)在SVN,当你提交你的完成品时,它将直接记录到中央版本库。当你发现你的完成品存在严重问题时,你已经无法阻止事情的发生了。如果网路中断,你根本没办法提交!而Git的提交完全属于本地版本库的事情。而你只需推(git push)到主要版本库即可。Git的推其实是在执行同步(Sync)
  • Git的内容的完整性要优于SVN: GIT的内容存储使用的是SHA-1哈希算法。这能确保代码内容的完整性,确保在遇到磁盘故障和网络问题时降低对版本库的破坏。
  • Git把内容按元数据方式存储,而SVN是按文件
  • Git对于每一次提交,通过对文件的内容或目录的结构计算出一个SHA-1 哈希值,得到一个40位的十六进制字符串,Git将此字符串作为版本号。所有保存在Git 数据库中的数据都是用此40位的哈希值作索引的,而不是靠文件名。SVN 的版本号是连续的,可以预判下一个版本号,而 Git 的版本号则不是
  • Git中有暂存区域(stage)
  • Git的授权做不到Subversion那样精细
  • Git支持离线工作,速度快、灵活,代码保密性差,一旦开发者把整个库克隆下来就可以完全公开所有代码和版本信息
阅读全文 »

Java开发框架

发表于 2019-01-19 | 分类于 Java

Java-framework java各种主流开发框架介绍,框架就像一个模板,里边已经预置了一些公认的最佳实践。

Spring 与扩展插件集成

是一个J2EE框架,轻量级IoC良好支持,也提供AOP技术非常好的封装。模块化独立完成特定工作。
Spring AOP、Sping ORM、Spring DAO、Spring Web、Spring Context、Spring Web MVC、Spring Core等。

核心功能IOC

控制反转(Inverse Of Control),有时也被称作依赖注入,在Java开发中,IoC意味着将你设计好的类交给系统去控制,而不是在你的类内部控制,是一种降低对象之间耦合关系的设计思想

IOC模式将耦合代码从程序中移出,放到统一的XML文件或者注解中管理。由IOC容器通过配置文件或者注解来管理对象的生命周期、依赖关系等,这样就不用重新修改并编译具体的代码,从而实现组件之间的解耦

阅读全文 »

Jfinal 源码分析

发表于 2019-01-19 | 分类于 Java

Jfinal 基本使用与源码分析

jfinal 使用

jfinal Config

1
2
3
4
5
6
7
8
public class DemoConfig extends JFinalConfig {
public void configConstant(Constants me) {}//配置JFinal常量值
public void configRoute(Routes me) {}//配置访问路由
public void configEngine(Engine me) {}//配置Template Engine
public void configPlugin(Plugins me) {}//配置JFinal的Plugin,比如druid、ActiveRecord
public void configInterceptor(Interceptors me) {}//全局拦截器,配置粒度分为 Global、Inject、Class、Method四个层次
public void configHandler(Handlers me) {}//Handler可以接管所有web请求
}

提供回调方法,读取配置工具类

阅读全文 »

github-pages 配置

发表于 2019-01-19 | 分类于 工具

github-pages 快捷配置个人博客

github创建pages工程,搭建个人博客

  1. 使用 用户名.github.io 的形式命名工程
  2. 创建CNAME文件,设置网站地址www.techinfo.vip
  3. 创建index.html,可以通过代码进行页面跳转,或者就直接当主页,或者创建README.md生成markdown pages,
    我是直接跳转到另一个工程<script type="text/javascript">window.location.href="http://www.techinfo.vip/TechNotes/";</script>
  4. 进入Settings-GitHub Pages 做github pages相关配置
    • Source 选择主分支点击保存
    • Theme Chooser 选择一个主题
    • Custom domain 输入 www.techinfo.vip 保存
  5. 类似第4步方法,开启TechNotes工程的GitHub Pages功能
阅读全文 »

Java 设计模式

发表于 2019-01-19 | 分类于 Java

设计模式(Design Pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。

设计模式六原则

  • 开闭原则(Open Close Principle)
    开闭原则就是说对扩展开放,对修改关闭
  • 里氏代换原则(Liskov Substitution Principle)
    里氏代换原则(Liskov Substitution Principle LSP)面向对象设计的基本原则之一。 里氏代换原则中说,任何基类可以出现的地方,子类一定可以出现。氏代换原则是对“开-闭”原则的补充
  • 依赖倒转原则(Dependence Inversion Principle)
    这个是开闭原则的基础,具体内容:针对接口编程,依赖于抽象而不依赖于具体。
  • 接口隔离原则(Interface Segregation Principle)
    使用多个隔离的接口,比使用单个接口要好。降低类之间的耦合度
  • 迪米特法则(最少知道原则)(Demeter Principle)
    一个实体应当尽量少的与其他实体之间发生相互作用,使得系统功能模块相对独立
  • 合成复用原则(Composite Reuse Principle)
    原则是尽量使用合成/聚合的方式,而不是使用继
阅读全文 »

JAVA 基础

发表于 2019-01-19 | 分类于 Java

JAVA 核心基础功能介绍

JAVA是一个面向对象的编程语言,面向对象就是一种抽象开发的思想包含封装、继承、多态,去掉这些概念也就是面向过程。应该是最初很多程序员使用面向过程编程,总结各种经验,对编程过程进行各种改进抽象出的更接近现实世界的最佳实鉴。通过面向对象有助与复杂系统的开发,有效提高编程效率。

  • 抽象 将一类实体的共同特性抽象出来,封装在一个抽象类中
  • 封装 将抽象得到的数据和行为(或功能)相结合,形成一个有机的整体,也就是将数据与操作数据的源代码进行有机的结合,形成“类”,其中数据和函数都是类的成员。封装隐藏了类的内部实现机制,可以在不影响使用的情况下改变类的内部结构,同时也保护了数据。对外界而已它的内部细节是隐藏的,暴露给外界的只是它的访问方法。
  • 继承 在一个现有类型的基础上,通过增加新的方法或者重定义已有方法的方式(重载/重写),产生一个新的类型。
  • 多态 通过传递给父类对象引用不同的子类对象从而表现出不同的行为,多态可为程序提供更好的可扩展性,同样也可以代码重用。

类直接的关系:

  1. 继承
  2. 实现
  3. 依赖 一个类A使用到了类B,属于非常弱的关系。a.append(B b)。UML中虚线箭头
  4. 关联 强依赖,长期的关系。B是A的成员变量public class A { private B b = new B();}。UML中实线箭头
  5. 聚合 整体与部分的关系,has-a,是可以分离的,各自有各自的生命周期。比如公司与员工。UML中空心菱形加实线箭头
  6. 组合 是contains-a的关系,比关系比聚合强就是强聚合。整体和部分不可分割。比如人和手。UML中实心菱形加实线箭头

基础写法

循环

for循环目前有4种写法

1
2
3
4
for (int i=0; i<100; i++) {}
for (String s : list) {}
items.forEach((k,v)->{...});
items.stream().filter(s->s.contains("B")).forEach(System.out::println);
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
for (int i=0; i<100; i++) {
// break 退出循环
// continue 跳过单次循环
}

//lambada表达式中foreach使用break
List<String> c = Arrays.asList("1", "2", "3", "4");
c.stream().forEach(str ->{
if("3".equals(str)) {
return; //跳出当前循环,继续下一轮
}
System.out.println(str);
});
//lambada表达式中foreach抛异常退出循环
List<String> c = Arrays.asList("1", "2", "3", "4");
try {
c.stream().forEach(str ->{
if("3".equals(str)) {
throw new RuntimeException();
}
System.out.println(str);
});
} catch (Exception e) {

}

常用函数

空值判断,最常见的问题之一

1
2
3
4
String[] photo = new String[0]; // 初始化
if (camera.getImages()!=null && camera.getImages().length()>0) {
photo = camera.getImages().split(",");
}

类型转换

  • String.valueOf() Integer.parseInt(String s)
  • 错误用法:强制转换 (String)data //Cannot cast from Integer to String

split

注意: . 、 | 和 * 等转义字符,必须得加 \\。

注意:多个分隔符,可以用 | 作为连字符。

public String[] split(String regex, int limit)

regex – 正则表达式分隔符。

limit – 分割的份数

split(" ", -1):

  1. 如果字符串最后一位有值则没有区别
  2. 如果最后N位都是分隔符,split(" ")不会继续切分,split(" ", -1)会继续切分。
  3. split(" ")不会保留空值,但是split(" ")会保留空值
  4. 具体说明可以参看java API文档说明,通过开发工具可以直接查看注释
阅读全文 »

java编码规范

发表于 2019-01-15 | 分类于 设计

java编码规范精简版

一、编程规约

(一) 命名风格

  1. 【强制】代码中的命名均不能以下划线或美元符号开始,也不能以下划线或美元符号结束。

  2. 【强制】代码中的命名严禁使用拼音与英文混合的方式,更不允许直接使用中文的方式。

阅读全文 »

markdown 编写规范

发表于 2019-01-12 | 分类于 设计

markdown 编写规范,意在提高文档的可读性,统一性。

说明

文档中使用的关键字「MUST」,「MUST NOT」,「REQUIRED」,「SHALL」,「SHALL
NOT」,「SHOULD」,「SHOULD NOT」,「RECOMMENDED」,「MAY」和「OPTIONAL」在 RFC2119 中有说明。

阅读全文 »

Markdown教程

发表于 2019-01-12 | 分类于 工具

Markdown教程

使用技术

  • 目录 # 一级标题 ## 二级标题 ### 三级标题,与内容之间要加空格
  • 如何换行 行末加两个空格再回车或者加一个空行
  • 表格用法
命令 说明
fff ffff
代码:
1
2
3
| 命令 | 说明 |
| ------ | ------ |
| fff | ffff |
  • 代码加亮
命令 说明
shell 脚本
c,cpp C
css css
java java
text text
xml xml
sql sql
js,javascript js
  • 分割线

代码:

1
***
  • 目录跳转 GFM-TOC 模式,keywords模式,工具自动生成
  • 一、git安装连接github
  • 标准转意字符标\

git安装连接github

  • Keywords

Java Keywords

JavaScript教程

发表于 2019-01-12 | 分类于 WEB技术
javascript教程,js的基础使用
阅读全文 »
<1…91011>

102 日志
11 分类
28 标签
GitHub E-Mail
© 2019 — 2021 Jason Lin
闽ICP备-19002424号
访客数 人 总访问量 次