- 博客(59)
- 资源 (1)
- 收藏
- 关注
原创 插件即元编程
Java拥有了丰富的IDE生态 , 而其一重要部分就是插件. 插件其作用通常是辅助开发者进行开发. 在这个角度上 , 它重新将Java展示开发者的眼前. 这种重新展示的过程 , 我认为也算是一种元编程, 或者我认为也可以叫「编程语言的VR」.特点插件, IDE ,编程语言的关系插件==>IDE==>编程语言将职能分离编写「编程语言」和「IDE」的团队不是同一组织...
2018-05-10 10:03:05
259
原创 编程风格 - goto
书籍: 编程风格(豆瓣) - 豆瓣读书 第八章 - 骨牌风格前言该骨牌风格实质上说的是goto语句, goto的作用是用于跳转该书讲述其作用有三异常判断 (if -else)单线程IO阻塞优化尾部调用思考1)异常判断 (if -else)example好处 : 减少if else层数 ( if层数越大效果越明显 )if(情况A){ ...
2018-04-19 01:31:42
326
原创 小鸦 - golang 函数多参返回 (良好体验)
Go 的表示方式func getRequest(conn net.Conn) //函数(rawaddr []byte, host string, err error)//返回的参数{}Java 解决方案传统上, Java解决方案是用Map. 使用Map的缺点返回参数个数不确定返回参数类型不确定返回参数名字是字符串形式存在, IDE无法检测 , 字符串不存在局...
2018-04-01 16:45:58
903
原创 小鸦 - 静态代码块的作用
[静态代码块] 作用是起环境(技术,模块)的搭建时, 作为入口使用。换种说法, 其作用和main方法一样 , 是一个入口.例子: 数据库配置以及其工具类因为是工具类,其方法必定均为static. 而在进行数据库相关操作之前, 我们必须配置它 ( 数据库的用户名和密码等参数 ). 这时候有两个方案在各个方法的第一行统一加上 init()方法, 这样在方法被调用时候就会初始化配置静态...
2018-03-30 02:13:59
363
原创 Java 初始化成员变量
类的成员初始化变量, 其实有若干种.1. 直接赋值class A{ Object b=new B();}问题: 赋值权力下移子类 (为了抽象) 做法: 子类覆盖父类 如下(然而 , Java 成员变量不存在多态)class A{ Object b;}public SubA extned A{ super.b=new B();// 无法这样...
2018-03-28 13:47:04
934
原创 单例模式是灾难
单例模式enum A { INSTANCE; public int doA() { B.INSTANCE.doB(); return 0; } public static void main(String[] args) { A.INSTANCE.doA(); }}DI依赖注入pub...
2018-03-23 00:32:36
160
原创 小鸦 - 破窗效应 简单的反思
破窗效应定义 后来,辛巴杜用锤子把那辆车的玻璃敲了个大洞。 结果呢,仅仅过了几个小时,它就不见了。 以这项实验为基础,政治学家威尔逊和犯罪学家凯琳提出了一个“破窗效应”理论,认为:如果有人打坏了一幢建筑物的窗户玻璃,而这扇窗户又得不到及时的维修,别人就可能受到某些示范性的纵容去打烂更多的窗户。软件工程破窗效应其实反应了重构的需求, 而放纵软件中各种乱象, 其最终结果可...
2018-03-11 14:09:16
533
原创 org.dbunit.database.ambiguoustablenameexception
参考了以下网站的代码 https://examples.javacodegeeks.com/core-java/junit/junit-dbunit-example/代码中使用的驱动是 mysql 5.1.30, 然而我使用的是mysql 8, 发现后者不能使用, 并报出该错误 org.dbunit.database.ambiguoustablenameexception 解决方案, 很简单,
2018-01-31 00:52:07
1112
1
原创 intellij IDEA 无法使用gradle的原因(17-7-27)
intellij IDEA 无法使用gradle的原因 Error:com/android/builder/model/NativeAndroidProject : Unsupported major.minor version 52.0. Please idea Error:Could not run build action using Gradle installation ‘gradl
2017-07-27 17:58:22
5767
原创 golang日記 - func是必要的吗?
The Go Programming Language的例子 代码原址: https://github.com/adonovan/gopl.io/blob/master/ch5/toposort/main.gofunc topoSort(m map[string][]string) []string { var order []string seen := make(map[s
2017-06-01 20:32:40
369
原创 golang日記 - channel同步(代码段)
代码是从下面看到 https://stackoverflow.com/questions/20793568/golang-anonymous-struct-and-empty-structpackage mainimport "fmt"var battle = make(chan string)func warrior(name string, done chan struct{}) {
2017-06-01 18:43:46
428
原创 golang日記 - 函数里的构造函数(匿名函数)
The Go Programming Language书的5.6节匿名函数中,有以下代码func squares() func() int { var x int return func() int { x++ return x * x }}func main() { f := squares() fmt.Println(f
2017-05-31 23:25:21
1210
1
原创 golang日記 - web上传文件
代码来源: https://www.udemy.com/go-programming-language/learn/v4/content 课程的教程代码.步骤如下: 1. request获取文件名与文件 2. 文件名=(sha1)=>新的文件名 (sha1的详细过程 : 读取原文件内容,生成sha1码) 3. 创建文件, (↓)复制文件内容 (因为sha1过程, 使用了copy,
2017-05-21 22:54:59
443
原创 golang日記 - crypto/bcrypt
Web Development w/ Google’s Go (golang) Programming language 的067-Encrypt-Password-With-Bcrypt https://www.udemy.com/go-programming-language/learn/v4/content在上这节课的时候, 很好奇为什么密码要加密, 就上网搜了下, 搜到这篇文章 为什
2017-05-21 00:02:18
3218
原创 golang日記ーsprint有什么用? 和+号的区别
刚看这段代码, 就很好奇, sprint是拿来干嘛的? 我们有了+号name := "Todd McLeod"str := fmt.Sprint(`<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><title>Hello World!</title></head><body><h1>` +name +`</h
2017-05-07 15:57:11
3863
原创 小鸦 - Java 8 对Field injection的处理
Java 8 对Field injection的处理 optional可以怎么玩.
2017-04-28 16:52:52
3803
1
原创 Spring Rest的注解annotation和配置文档(ContentNegotiatingViewResolver)的区别
MessageConverter 和 ContentNegotiatingViewResolver的区别
2017-04-25 01:00:17
569
原创 IDEA玩法- 自动补充标签(括号式)
我们写Java的时候, 常常用到多行注释(ctrl+alt+/)/***/这种方式, 那时候就想, 有没有一种快捷键, 让HTML也可以这样做呢?在IDEA中, 有这种template(ctrl+alt+J), 选中范围, 就可以同时添加start tag 和end tag
2017-04-25 00:33:17
10151
原创 lambda-为什么要boxed
正确的IntStream.range(0, 10).mapToObj(i->new Product()).collect(Collectors.toList());报错的 IntStream.range(0, 10).collect(Collectors.toList());正确的 IntStream.range(0,10).boxed().collect(Collectors.toList());
2017-04-23 20:57:56
10880
3
原创 Field injection is not recommended
为什么不推荐Field injection? 在使用IDEA编写Spring时, 可能会遇到warning : Field injection is not recommended.究竟为什么不推荐Field injection呢?Field injection是什么?class MyComponent {
2017-04-18 17:01:36
12255
原创 Linux-ubuntu 日记( 2 )- 建立一个MySQL数据库
Linux 安装MySQL的步骤, 其实也很简单. 1. 安装MySQL. 2. 授权其他设备访问权限. 3. Test. 参考:http://wiki.ubuntu.org.cn/MySQL而这里用virtualbox, 我们需要考虑多一点. host computer和virtual machine之间的关系.参考: (因为duoshuo.com要关了) https://www.ev
2017-04-14 00:52:43
357
原创 myeclipse迁移到idea的问题
在迁移myeclipse的项目到idea后, tomcat配置出现以下问题 08-Apr-2017 11:04:24.369 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory F:\plug-in\Apach
2017-04-08 15:58:04
1017
原创 留坑-面试-动态绑定
今天, 一面试官问我, 多态的实现原理. 于是我想到「动态绑定」. 但是, 我却无法理解, 什么叫「动态绑定」 . 常规的理解, 就是 类型的绑定是动态的. 但我想要了解的是, 这种行为为什么要强调?1.「运行期」和「编译期」, 这两个概念很重要参考: 编译时与运行时这就是为什么四人帮(Gang of Four)的设计模式里更倾向于使用组合而不是继承的原因。面试者会在你的答案里着重关注这几个词语—
2017-04-08 01:27:08
231
原创 小鸦之设计模式(5)-(Iterator pattern)迭代模式很糟糕吗
刚学Java的时候, 就觉得迭代器是一个奇怪的东西. 1 . 为什么使用遍历容器的时候, 要用Iterator. public static void print(Collection coll){ Iterator it = coll.iterator(); while(it.hasNext()){ String str = (Str
2017-04-06 22:08:12
282
原创 留坑- 使用不同的SQL
大一, 我那专业学的是MSSQL, 后来接触到MySQL, 于是有以下的疑问.同样是关系数据库, 为什么SQL的语句不通用? 有没有规范它们的标准? 不通用也罢了, 有没有一种IDE, 很好地转换各种SQL语句. 即我们可以用MSSQL的语法来编MySQL的语句, 而且期间可以进行语法等检测. (SQL语句能自己定制化吗?)再退一步, 如果没有一种IDE可以跨平台, 那要如何才能高效地记住它们
2017-04-01 16:28:39
280
原创 留坑-为什么要区分group by和over partition
最近, 在复习SQL的时候, 搜索一下group by和over partition的区别.group by和over partition两者均是对进行分组的操作. 区别在于有没有合并起来. 这就是我留坑的原因.至今也不大了解, 可能是历史原因吧 常规思想 : 先分组, 再对分组进行操作, 操作可以是平均数, 可以是整合等等.
2017-03-31 17:51:41
429
原创 小鸦-如何设计系统(面试)-web
被问了三次, 如何设计一个系统. 但是作为一个应届生(而且还是没实习经验的). 这种问题真的回答不出. 如此我就在想, 考官想问什么?一) 学生的代码没有package的概念. 二) 学生之间的分工合作是乱分配的.一) package 其实这个问题, 就可以转换成, Java是怎么样构建package. 什么class能在一起组成一个package.应用下来的一层一般来说就是功能层. 也就是根
2017-03-28 19:46:27
256
原创 小鸦-Java8抽象类与接口的区别
前序: 被不少考官问过, 这次想重新整理一下.我们以下面的表格作为参考 原地址: http://www.importnew.com/12399.html (侵删)首先, 我们必须明白, 抽象类是什么—- class, 也就是类!! 它和普通的类, 除了子类要实现 abstract method 以外, 没有任何区别!!也就是, 我们的问题转换成 class与interface有什么区别?1.只能
2017-03-28 00:59:05
1130
原创 小鸦-两个数组找相同元素
例: int[] a = [1,2,3,4,5]; int[] b = [8,1,3,9,4]; 在两个数组中找相同的数1 双重循环查找, (类选择快排) O(n^2)创建一个数组储存匹配成功的数的位置.new array();for(){ for(){ if(a==b)array[a的位置]=b的位置 }}2 构建树, 再进行匹配将arrayA的数放
2017-03-23 01:21:20
943
原创 小鸦视角-看关系数据库MSSQL-索引(2)聚集索引和非聚集索引
前篇: 小鸦视角-看关系数据库MSSQL-view(视图)+存储过程+索引前篇, 我为了比较index(索引)和view(视图), 将index比喻成静态语言.当我们写完Java代码后, 就要进行编译, 生成class文件(字节码文件), 最后就用指令执行class文件.而上述过程中, 其实我们省略了一个过程, 编译是通过JVM来编译, 同比, index也是如此, 它也是需要”JVM”编译.而
2017-03-12 01:08:29
206
原创 小鸦-回调函数callback function
定义参考 : 回调函数- 维基百科](https://zh.wikipedia.org/zh-hans/%E5%9B%9E%E8%B0%83%E5%87%BD%E6%95%B0)图上, Class A ==调用==&amp;amp;gt;Class B ==调用==&amp;amp;gt;Class A 于是乎就有以下问题这样操作的目的是什么? 将上图换成client-server图, 我认为更能解释其作用....
2017-03-05 16:18:10
350
原创 小鸦之设计模式(2)-工厂模式
工厂模式, 有好几种, 工厂方法模式, 抽象工厂模式.. 我不打算就它们的“工厂”的设计模式展开讨论, 就我以前的几个费解的地方进行说明.普通模式interface Aclass B implement A{}class C implement A{}A a=new B();A b=new C()工厂模式class factory{.... A returnB(){ r
2017-03-04 03:20:11
1697
原创 小鸦视角-看关系数据库MSSQL-view(视图)+存储过程+索引
上一节, 我提到SQL中的查询语句select * from table但现实中, 有时查询没这么简单, 有可能select * from table1 join table2 on ... where...一大堆乱七八糟这个场景似曾相识. Java中也似乎有System.out.println("李好啊");乱七八糟的代码+再给你一波算法+System.out.println("算法结果是
2017-02-27 21:29:22
398
原创 小鸦视角-看关系数据库MSSQL-SQL
我们学数据库, 其实我发现用Object-oriented programming(面向对象式编程)的角度切入, 会更加容易了解.首先 , 我们先注意 SQL是宣告式(英语:Declarative)的语言, 也就是默认, 主人翁是”我们”, 而对象是”电脑” , 我们告诉它要干什么.SQL查询语句select * from library我们 告诉 电脑 去查询 图书馆这里就出现了第三者”图书馆”
2017-02-27 20:59:36
333
多屏/多显示器截图软件
2018-01-31
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人