`
JsonLiangyoujun
  • 浏览: 829822 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论
文章列表
介绍: 代理模式(Proxy Pattern)为其他对象提供一种代理,以控制对某类对象的访问。 目的: 解决在直接访问对象时带来的问题,比如说:要访问的对象在远程的机器上。在面向对象系统中,有些对象由于某些原因(比如对象创建开销很大,或者某些操作需要安全控制等),直接访问会给使用者或者系统结构带来很多麻烦,我们可以在访问此对象时加上一个对此对象的访问层。 实现: 我们先来看看代理模式的类图: (1)创建一个被代理对象和代理对象的公共接口或父类。 (2)创建被代理对象,即目标对象。 (3)创建代理对象。 是不是觉得很简单呢?这就是我们 ...
IDEA的快捷键据我个人统计约150-200个,全部记住并不现实。并且有些快捷键比较鸡肋,有些快捷键使用频率很低,有些快捷键又几乎作用相同,而有些快捷键不太建议使用以免误操作,所以我精简并归纳总结了以下快捷键(按使用顺序或使用频率排序!)。只要将这些快捷键熟练运用便可进入“无鼠标开发”的模式,成倍提高开发效率。使用心得:个人建议作为一个开发人员或经常使用IDEA的人,不要修改IDEA本身的快捷键(如有冲突尽量修改其它工具的快捷键),也尽量少添加自定义快捷键。 【查找切换】 01.双击 Shift         查找所有 02.Ctrl + N           查找类;Ctrl + Shi ...
TortoiseGit 使用扩展名为ppk的密钥,而不是ssh-keygen生成的rsa密钥。使用命令ssh-keygen -C "邮箱地址" -t rsa产生的密钥在TortoiseGit中不能用。而基于git的开发必须要用到rsa密钥,因此需要用到TortoiseGit的putty key generator工具来生成既适用于git的rsa密钥也适用于TortoiseGit的ppk密钥,具体配置步骤如下: 1)运行TortoiseGit开始菜单中的PuTTYgen程序(目录为TortoiseGit\bin),如下图示 2)点击“Generate”按钮,鼠标在上图的空白 ...
    我们都知道跳出一个循环使用break即可。那么如何跳出多重嵌套循环呢,java虽然保留了goto关键字,但是却不支持goto语法。其实我们只需要加一个标识就行了:     loop:for (int i = 0; i < 5; i++) { for (int j = 0; j < 5; j++) { for (int k = 0; k < 5; k++) { if(i==1&&i==j&&i==k) break loop; } } }     其实要跳出多重循环 ...
    说到不定长参数方法,其实有一个非常常用的方法,大家都用过的那就是main方法。下面就一起来看看不定长参数方法的demo;     package com; public class UnfixedParameter { public static void main(String[] args) { testOne(new String[]{}); te ...
    首先提醒一点:这里要说明的是文件换行符,而不是程序中输出字符串的换行符(例如:eclipse控制台输出在java程序中用\r或\n或者\r\n都能达到换行输出的效果)。     操作系统换行符     ASCII(美国信息交换标准码)中有这样两个字符CR(编码为13)和 LF(编码为10),在编程中通常表示为'\r'和'\n'。以下是各操作系统的换行符:     Unix和类Unix(如Linux):换行符采用 \n     Windows和MS-DOS:换行符采用 \r\n     Mac OS X:换行符采用 \n     实例说明     例如我现在从数据库读出数据写入一个文件 ...
    用迭代器取值时抛出的异常:java.util.NoSuchElementException: Hashtable Enumerator     代码示例://使用迭代器遍历 Iterator<String> it = tableProper.stringPropertyNames().iterator(); sqlMap = new HashMap<String,String>(); while(it.hasNext()){ sqlMap.put(it.next(), tableProper.getProperty(it.n ...
以下是笔者抽空整理的MyE(笔者所用版本为MyE10)常见问题及解决办法: 1、myeclipse的一个JavaScript 验证器导致的报错         (1)选择项目点击右键选择Properties(在最下面)         (2)选择Builders,将Builders选项下的Java ...
    先来简单的解释一下这三个名词:     处理器:即中央处理器(CPU,Central Processing Unit),它是一块超大规模的集成电路,是一台计算机的运算核心(Core)和控制核心( Control Unit)。它的功能主要是解释计算机指令以及处理计算机软件中的数据。     进程:进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。在早期面向进程设计的计算机结构中,进程是程序的基本执行实体;在当代面向线程设计的计算机结构中,进程是线程的容器。程序是指令、数据及其组织形式的描述,进程是程序的实体。   ...
       了解设计模式的朋友们,想必都听说过“六大设计原则”吧。其实最经典的 23 种设计模式中或多或少地都在使用这些设计原则,也就是说,设计模式是站在设计原则的基础之上的。所以在学习设计模式之前,很有必要对这些设计原则先做一下了解。 六大设计原则 先看一幅图吧: 这幅图清晰地表达了六大设计原则,但仅限于它们叫什么名字而已,它们具体是什么意思呢?下面我将从原文、译文、理解、应用,这四个方面分别进行阐述。 1. 单一职责原则(Single Responsibility Principle - SRP) 原文:There should never be more than one ...
      先看一个问题:i + 1 < i 成立吗?答案是肯定的。下面我们用代码来证明: @Test public void test(){ int i = Integer.MAX_VALUE; System.err.println("i="+i+",i+1="+(i+1)+" result:"+((i+1)<i)); } 输出结果如下: i=2147483647,i+1=-2147483648 result:true     为什么会这样呢?     这是因为整数在内存中使用的是补码 ...
    当eclipse出现卡死或闪退,而此时已经启动的Tomcat未被关闭。那么当你重启eclipse时,你是无法启动Tomcat的,会报错告诉你地址已存在(已被引用)或端口已被占用的问题。     解决办法:打开任务管理器(Ctrl+Alt+Delete),找到javaw.exe进程,点击结束进程。
    单例模式如果细分的话至少有8种以上(笔者知道的实现方式大概就有10种左右)的实现方式,这其中有一些实现方式是存在问题的,例如:线程安全问题、原子性问题等。笔者将列举出可行的单例模式的实现方式(存在问题的方式将不在此列举),并分析其中的优缺点。     以下是笔者的代码,其中饿汉式和懒汉式是以往最经典和常用的方式:     饿汉式(静态常量): /** * 饿汉式(静态常量) * 优点:这种写法比较简单,在类装载的时候就完成实例化。避免了线程同步问题。 * 缺点:在类装载的时候就完成实例化,没有达到Lazy Loading的效果。如果从始至终从未 * 使用过这个实例,则会造 ...
sudo简介:     sudo 是Linux下常用的允许普通用户使用超级用户权限的工具,允许系统管理员让普通用户执行一些或者全部的root命令。这样不仅减少了root用户的登陆次数和管理时间,同样也提高了安全性。因为如果普通用户要执行root才能执行的命令的时候、就必须切换到root用户、这样他必须要知道root用户的密码、这样也就意味着要对每一个这样的用户下放root的密码,这样很不安全。 sudo设计者的宗旨:     给用户尽可能少的权限但仍允许完成他们的工作。 sudo的特点:    # 1. sudo能够限制指定用户在指定主机上运行某些命令。    # 2. sudo可以提供日志 ...
    MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品。MySQL 最流行的关系型数据库管理系统,在 WEB 应用方面MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一。     MySQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。     MySQL所使用的 SQL 语言是用于访问数据库的最常用标准化语言。MySQL 软件采用了双授权政策,它分为社区版和商业版, ...
Global site tag (gtag.js) - Google Analytics