Catch
标签:Java

《设计模式之禅》手记

接口要高内聚 什么是高内聚?高内聚就是提高接口、类、模块的处理能力,减少对外的交互。比如你告诉下属“到奥巴马的办公室偷一个×××文件”,然后听到下属用坚定的口吻回答你:“是,保证完成任务!”一个月后,你的下属还真的把×××文件放到你的办公桌上了,这种不讲任何条件、立刻完成任务的行为就是高内聚的表现。具体到接口隔离原则就是,要求在接口中尽量少公布public方法,接口是对外的承诺,承诺越少对系统的开发越有利,变更的风险也就越少,同时也有利于降低成本。

3月前 148浏览

抽象类与接口

抽象类 在java中抽象的关键字为abstract,抽象类被创造出来就是为了继承,简单明了地告诉用户跟编译器自己大概是长什么样子的。例如抽象类申明的语法: abstract class Abc { abstract void fun(); } 抽象类有以下几个特性: 抽象方法必须为public、protected(若为private,则不能给子类继承,子类无法实现该方法,所以无意义),缺省时为public; 抽象类不能直接用来创建对象,必须由子类继承并实现其父类方法才能创建对象; 抽象类可以继承抽象类,子类必须复制继承父类的抽象方法; 只要包含一个抽象方法的抽象类,该方法必须要定义成抽象类,不管是否还包含有其他方法。 接口 在java中抽象的关键字为interface,接口也可以说是一个更加抽象的抽象类,对行为进行抽象,只提供一种形式,并不提供实施的细节。 接口的语法如下: [public] interface InterfaceName { } 继承时采用关键字implements: class ClassName implements Interface1,Interface2,[....]{ } 接口有以下几个特性: 接口可以包含变量,成员变量会被隐式地指定为public static final变量(并且只能是public static final变量,用private修饰会报编译错误); 接口可以包含方法,方法会被隐式地指定为public abstract方法且只能是p

3月前 163浏览

验证码无法显示:Could not initialize class sun.awt.X1 解决方案

网站验证码突然无法显示,并报如下错误。 Caused by: java.lang.NoClassDefFoundError: Could not initialize class sun.awt.X11GraphicsEnvironment at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Unknown Source) at java.awt.GraphicsEnvironment.createGE(Unknown Source) at java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment(Unknown Source) at java.awt.image.BufferedImage.createGraphics(Unknown Source) 网上搜索了一下,在catalina.sh里加上一句-Djava.awt.headless=true \,问题解决。 经查,出现这种情况一般就是启动tomcat的用户无法访问Xserver,包括Xserver没有启动或者没有权限访问. 修改${TOMCAT_HOME}/bin/catalina.sh或${TOMCAT_HOME}/bin/catalina.bat文件: 在所有类似以下代码: "$_RUNJAVA" $JAVA_OPTS $CATALINA_OPTS \ -Djava.endo

4月前 111浏览

IDEA中使用lombok

lombok 是一款可以精减 java 代码、提升开发人员生产效率的辅助工具,利用注解在编译期自动生成setter/getter/toString()/constructor 之类的代码。代码越少,意味着出 bug 的可能性越低。 官网地址:https://projectlombok.org/ 引入 maven 依赖 <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.16.20</version> <scope>provided</scope> </dependency> 安装插件 进入 File->Settings->Plugins->Browse Repositories,搜索 Lombok Plugin,选中后点击右边的 install进行安装,安装完成后需要重启 IDEA 设置 Java Compiler IDEA 有一个选项配置 Java Compiler,elipse 的编译方式不直接支持 lombok,应该选择 javac,因为 javac 是支持 lombok 的编译方式,而 maven 也是使用的 javac 编译器,因此运行 mvn 命令不会出错。 具体操作为进入 File->Set

5月前 232浏览

使用YUICompressor压缩JS、CSS优化前端加载速度

性能一直是项目中比较重要的一点,尤其门户网站,对页面的响应要求是很高的,从性能角度上来讲,对于Web端的优化其中重要的一点无疑是JS、CSS文件压缩,图片的融合,尽量减小文件的大小,必免占加载时占用过多的带宽。yuicompressor无疑是一个比较好的压缩工具,是yahoo的一个开源组件,下面介绍yuicompressor压缩JS、CSS文件,及在项目中的使用。 YUICompressor介绍 首先需要从https://github.com/yui/yuicompressor/releases下载yuicompressor的jar文件,目前最新版是2.4.8,把yuicompressor-2.4.8.jar下载下来,一会就用这个jar来压缩文件 yuicompressor需要有java运行环境的支持,先通过java -jar yuicompressor-2.4.8.jar看下效果 —type:文件类型(js|css) —charset:字符串编码 —line-break:在指定的列后面插入一个line-break符号 -v,—verbose: 显示info和warn级别的信息 -o:指定输出的文件位置及文件名 —nomunge:只压缩, 不对局部变量进行混淆 —preserve-semi:保留所有的分号 —disable-optimizations:禁止优化 下面是一个单个文件压缩的命令示例 java -jar /data/lib/yuicompressor-2.4.7.ja

6月前 200浏览