精华内容
下载资源
问答
  • 办公环境中用svn系统管理文档和代码,很长段时间没有checkout资料出来,更换title后需要学习新的材料,从svn系统中checkout材料到本地一直失败,文件下载部分后svn client报错提示“” 【问题排查】 问题的...

    【问题描述】

    办公环境中用svn系统管理文档和代码,很长一段时间没有checkout资料出来,更换title后需要学习新的材料,从svn系统中checkout材料到本地一直失败,文件下载一部分后svn client报错提示“ra_serf: An error occurred during SSL communication”


    【问题排查】

    问题的根源应该是指网络上,可能的原因有svn client、网卡驱动、网卡、网线等,因此尝试如下操作

    1、网上各种查找,大部分说是和杀毒软件有关系,个人电脑上的杀软卸载多次,问题依旧

    2、从错误信息上提示为ssl错误,因此个人电脑上重新安装虚拟机系统,再次进行checkout,依旧各种错误,失败.......

    3、重新安装网卡驱动,问题依旧...........

    4、自己的账号在同事电脑上进行checkout完整正常,个人电脑安装和同事系统一样的svn client,依旧问题重现

    5、更换主机上的网卡,问题依旧出现

    陷入深深的思考。。。。。。

    不经意之间发现自己的电脑上安装有usb无线wifi,这玩意和网络驱动有直接关联。决定卸载usb wifi相关内容。卸载完成后完美解决问题,重新回到流畅的checkout过程中

    展开全文
  • (水仙花数,是指一个三位数,它的各位数字的立方和等于自身数,:153=13+53+33) public class Jiejue3 { public static void main(String args[]) {  System.out.println("100-1000的水仙花数是:");  ...

    3、求100-1000之间的水仙花数。(水仙花数,是指一个三位数,它的各位数字的立方和等于自身数,例:153=13+53+33)

    public class Jiejue3 {

    public static void main(String args[]) {
         System.out.println("100-1000的水仙花数是:");
         for(int n=100; n<1000; n++) {
           if(shuixianhua(n)) {
            System.out.println(n);
           }                                                                                                   
         }
        }
       
        //判断一个数是否为水仙花数
        public static boolean shuixianhua(int n) {
        
         //获得个位数
         int gewei = n % 10;
        
         //获得十位数
         int shiwei = n / 10 % 10;
        
         //获得百位数
         int baiwei = n /100 % 10;
        
         if (n == gewei*gewei*gewei + shiwei*shiwei*shiwei + baiwei*baiwei*baiwei) {
          return true;
         }
         return false;
        }

    }

    展开全文
  • 单例和多的区别 :单例多...1. 什么是单例、多: 所谓单例就是所有的请求都用个对象来处理,比如我们常用的service和dao层的对象通常都是单例的,而多每个请求用个新的对象来处理,比如action; ...
     单例和多例的区别 :

    单例多例需要搞明白这些问题:
         1. 什么是单例多例;
         2. 如何产生单例多例;
         3. 为什么要用单例多例
         4. 什么时候用单例,什么时候用多例;

    1. 什么是单例、多例:
         所谓单例就是所有的请求都用一个对象来处理,比如我们常用的service和dao层的对象通常都是单例的,而多例则指每个请求用一个新的对象来处理,比如action;

         单例模式和多例模式说明:
         1. 单例模式和多例模式属于对象模式。
         2. 单例模式的对象在整个系统中只有一份,多例模式可以有多个实例。
         3. 它们都不对外提供构造方法,即构造方法都为私有。

    2. 如何产生单例、多例:
        在通用的SSH中,单例在spring中是默认的,如果要产生多例,则在配置文件的bean中添加scope="prototype";

    3. 为什么用单例、多例:
        之所以用单例,是因为没必要每个请求都新建一个对象,这样子既浪费CPU又浪费内存;
       之所以用多例,是为了防止并发问题;即一个请求改变了对象的状态,此时对象又处理另一个请求,而之前请求对对象状态的改变导致了对象对另一个请求做了错误的处理;
        用单例和多例的标准只有一个:
         当对象含有可改变的状态时(更精确的说就是在实际应用中该状态会改变),则多例,否则单例;

    4. 何时用单例?何时用多例?
        对于struts2来说,action必须用多例,因为action本身含有请求参数的值,即可改变的状态;
        而对于STRUTS1来说,action则可用单例,因为请求参数的值是放在actionForm中,而非action中的;
        另外要说一下,并不是说service或dao一定是单例,标准同第3点所讲的,就曾见过有的service中也包含了可改变的状态,同时执行方法也依赖该状态,但一样用的单例,这样就会出现隐藏的BUG,而并发的BUG通常很难重现和查找;

           spring生成对象默认是单例的。通过scope属性可以更改为多例

    <bean id="user" class="modle.User" scope="prototype">  </bean>

    现在又这么一种情况.

    User类调用一个service, 这个service又调用一个tool。

    有时我们希望User是多例的,service是单例的,而tool又是多例的。

    很自然地想法是配置文件这些写
    <bean id="user" class="modle.User" scope="prototype">   
         <property name="service" ref="userservice"> </property> 
    </bean>   
    <bean id="userservice" class="service.userService" >   
         <property name="tool" ref="tool"> </property> 
    </bean>   
    <bean id="tool" class="service.ToolImpl" scope="prototype">
    </bean>
    但是这种写法是错误的! 不能使用spring的自动注入!

    由于service是单例的,所以这种方法的结果是:User多例,service和tool都是单例。(为什么?)

    官网文档:
    4.5.3 Singleton beans with prototype-bean dependencies

    When you use singleton-scoped beans with dependencies on prototype beans, be aware that dependencies are resolved at instantiation time. Thus if you dependency-inject a prototype-scoped bean into a singleton-scoped bean, a new prototype bean is instantiated and then dependency-injected into the singleton bean. The prototype instance is the sole instance that is ever supplied to the singleton-scoped bean.

    However, suppose you want the singleton-scoped bean to acquire a new instance of the prototype-scoped bean repeatedly at runtime. You cannot dependency-inject a prototype-scoped bean into your singleton bean, because that injection occurs only once, when the Spring container is instantiating the singleton bean and resolving and injecting its dependencies. If you need a new instance of a prototype bean at runtime more than once, see Section 4.4.6, “Method injection”

    正确的写法是,是每次调用tool时都生成一个新的tool对象。但是我们又不能手动new一个,要借助BeanFactory

    public class User {

      private userService service;
      private int age;
      private Date date;
      private String name;

    UserService 通过实现 BeanFactoryAware 接口来获得factory
    由于不使用spring的自动注入,set方法要去掉!
    public  class userService implements BeanFactoryAware{   
      private Tool tool;
       private BeanFactory factory;
       public  void service(){
         this.tool = (Tool)factory.getBean( "tool");
        System.out.println( this+ ":service");
        tool.work();
      }
       public Tool getTool() {
             return tool;
      }
    // public void setTool(Tool tool) { //        
    //  this.tool = (Tool)factory.getBean("tool"); // } 
    public  void setBeanFactory(BeanFactory f)  throws BeansException {
        factory = f;
      }
     
    }
    配置文件,不能再使用注入。因此要把tool对象的注入去掉!
    <bean id="user" class="modle.User" scope="prototype">   
         <property name="service" ref="userservice"> </property> 
    </bean>   
    <bean id="userservice" class="service.userService" > 
    </bean>   
    <bean id="tool" class="service.ToolImpl" scope="prototype">
    </bean>
    public interface Tool { 
         public void work();
    }

    public class ToolImpl implements Tool{

      public void work() {
        System.out.println(this+":Tool Work");
      }
    }
    测试类:
    public  class Test {
       public  static  void main(String[] args) {
        ClassPathResource res =  new ClassPathResource( "applicationContext.xml");
        XmlBeanFactory factory =  new XmlBeanFactory(res);
        User user = (User)factory.getBean( "user");
        User user2 =  (User)factory.getBean( "user");
            System. out.println(user);
        user.getService().service();
        System. out.println();
        System. out.println(user2);
        user2.getService().service();
      }
    }
    Output:

    modle.User@42552c
    service.userService@19e15c:service
    service.ToolImpl@11a75a2:Tool Work
    
    modle.User @210b5b
    service.userService @19e15c :service
    service.ToolImpl @170888e :Tool Work
    展开全文
  • java中单和多

    万次阅读 多人点赞 2018-01-30 10:25:31
    你用杯子喝可乐,喝完了不刷,继续去倒果汁喝,...所谓单例就是所有的请求都用个对象来处理,比如我们常用的service和dao层的对象通常都是单例的,而多每个请求用个新的对象来处理,比如action;  2. 

    你用杯子喝可乐,喝完了不刷,继续去倒果汁喝,就是单例
    你用杯子喝可乐,直接扔了杯子,换个杯子去倒果汁喝,就是多例

    数据库连接池就是单例模式,有且仅有一个连接池管理者,管理多个连接池对象。

    1. 什么是单例多例:
    所谓单例就是所有的请求都用一个对象来处理,比如我们常用的service和dao层的对象通常都是单例的,而多例则指每个请求用一个新的对象来处理,比如action; 


    2. 如何产生单例多例:
        在通用的SSH中,单例在spring中是默认的,如果要产生多例,则在配置文件的bean中添加scope="prototype"; 


    3. 为什么用单例多例:
        之所以用单例,是因为没必要每个请求都新建一个对象,这样子既浪费CPU又浪费内存
        之所以用多例,是为了防止并发问题;即一个请求改变了对象的状态,此时对象又处理另一个请求,而之前请求对对象状态的改变导致了对象对另一个请求做了错误的处理;
        用单例和多例的标准只有一个:
        当对象含有可改变的状态时(更精确的说就是在实际应用中该状态会改变),则多例,否则单例;

        单例其实就在内存中该对象只有一个内存对应地址无论你多少个线程访问那个对象,都是同一个地址。这样节省内存


    4. 何时用单例?何时用多例?
        对于struts2来说,action必须用多例,因为action本身含有请求参数的值,即可改变的状态;
        而对于struts1来说,action则可用单例,因为请求参数的值是放在actionForm中,而非action中的;
        另外要说一下,并不是说service或dao一定是单例,标准同第3点所讲的,就曾见过有的service中也包含了可改变的状态,同时执行方法也依赖该状态,但一样用的单例,这样就会出现隐藏的BUG,而并发的BUG通常很难重现和查找;

     

    单例模式 

    懒汉单例

     

     

     

     

     

    饿汉式

     

    登记式单例

    java中单例模式是一种常见的设计模式,单例模式的写法有好几种,这里主要介绍三种:懒汉式单例、饿汉式单例、登记式单例。
      单例模式有以下特点:
      1、单例类只能有一个实例。
      2、单例类必须自己创建自己的唯一实例。
      3、单例类必须给所有其他对象提供这一实例。
      单例模式确保某个类只有一个实例,而且自行实例化并向整个系统提供这个实例。在计算机系统中,线程池、缓存、日志对象、对话框、打印机、显卡的驱动程序对象常被设计成单例。这些应用都或多或少具有资源管理器的功能。每台计算机可以有若干个打印机,但只能有一个Printer Spooler,以避免两个打印作业同时输出到打印机中。每台计算机可以有若干通信端口,系统应当集中管理这些通信端口,以避免一个通信端口同时被两个请求同时调用。总之,选择单例模式就是为了避免不一致状态,避免政出多头。

     

     

    饿汉式和懒汉式区别

    从名字上来说,饿汉和懒汉,

    饿汉就是类一旦加载,就把单例初始化完成,保证getInstance的时候,单例是已经存在的了,

    而懒汉比较懒,只有当调用getInstance的时候,才回去初始化这个单例。

    另外从以下两点再区分以下这两种方式:

     

    1、线程安全:

    饿汉式天生就是线程安全的,可以直接用于多线程而不会出现问题,

    懒汉式本身是非线程安全的,为了实现线程安全有几种写法,分别是上面的1、2、3,这三种实现在资源加载和性能方面有些区别。

     

    2、资源加载和性能:

    饿汉式在类创建的同时就实例化一个静态对象出来,不管之后会不会使用这个单例,都会占据一定的内存,但是相应的,在第一次调用时速度也会更快,因为其资源已经初始化完成,

    而懒汉式顾名思义,会延迟加载,在第一次使用该单例的时候才会实例化对象出来,第一次调用时要做初始化,如果要做的工作比较多,性能上会有些延迟,之后就和饿汉式一样了。

    至于1、2、3这三种实现又有些区别,

    第1种,在方法调用上加了同步,虽然线程安全了,但是每次都要同步,会影响性能,毕竟99%的情况下是不需要同步的,

    第2种,在getInstance中做了两次null检查,确保了只有第一次调用单例的时候才会做同步,这样也是线程安全的,同时避免了每次都同步的性能损耗

    第3种,利用了classloader的机制来保证初始化instance时只有一个线程,所以也是线程安全的,同时没有性能损耗,所以一般我倾向于使用这一种。

     

     

    什么是线程安全?

    如果你的代码所在的进程中有多个线程在同时运行,而这些线程可能会同时运行这段代码。如果每次运行结果和单线程运行的结果是一样的,而且其他的变量的值也和预期的是一样的,就是线程安全的。

    或者说:一个类或者程序所提供的接口对于线程来说是原子操作,或者多个线程之间的切换不会导致该接口的执行结果存在二义性,也就是说我们不用考虑同步的问题,那就是线程安全的。

     

    应用

    以下是一个单例类使用的例子,以懒汉式为例,这里为了保证线程安全,使用了双重检查锁定的方式:

     

    public class TestSingleton {
    	String name = null;
    
            private TestSingleton() {
    	}
    
    	private static volatile TestSingleton instance = null;
    
    	public static TestSingleton getInstance() {
               if (instance == null) {  
                 synchronized (TestSingleton.class) {  
                    if (singleton == null) {  
                       singleton = new TestSingleton(); 
                    }  
                 }  
               } 
               return instance;
    	}
    
    	public String getName() {
    		return name;
    	}
    
    	public void setName(String name) {
    		this.name = name;
    	}
    
    	public void printInfo() {
    		System.out.println("the name is " + name);
    	}
    
    }

    可以看到里面加了volatile关键字来声明单例对象,既然synchronized已经起到了多线程下原子性、有序性、可见性的作用,为什么还要加volatile呢,原因已经在下面评论中提到,

    还有疑问可参考http://www.iteye.com/topic/652440
    和http://www.cs.umd.edu/~pugh/java/memoryModel/DoubleCheckedLocking.html

     

     

    public class TMain {
    	public static void main(String[] args){
    		TestStream ts1 = TestSingleton.getInstance();
    		ts1.setName("jason");
    		TestStream ts2 = TestSingleton.getInstance();
    		ts2.setName("0539");
    		
    		ts1.printInfo();
    		ts2.printInfo();
    		
    		if(ts1 == ts2){
    			System.out.println("创建的是同一个实例");
    		}else{
    			System.out.println("创建的不是同一个实例");
    		}
    	}
    }
    

     运行结果:

    结论:由结果可以得知单例模式为一个面向对象的应用程序提供了对象惟一的访问点,不管它实现何种功能,整个应用程序都会同享一个实例对象。

    对于单例模式的几种实现方式,知道饿汉式和懒汉式的区别,线程安全,资源加载的时机,还有懒汉式为了实现线程安全的3种方式的细微差别。

    展开全文
  • 千次阅读 热门讨论 2015-11-22 17:05:00
    1.2用图:用图(use case diagram)是由参与者(Actor)、用例(Use Case)以及它们之间的关系构成的用于描述系统功能的静态视图。 1.3用例建模: 用例建模(Use Case Modeling)是使用用例的
  • 数据库设计之用

    千次阅读 2013-07-16 23:58:48
    、用图基本介绍 1、用图的基本概念  用图:是由参与者、用例以及它们之间的关系构成的用于描述系统功能的静态视图。 2、用图的基本构成 (1)参与者(Actor):不是特指人,是系统以外的,在...
  • C语言经典算法100

    万次阅读 多人点赞 2013-10-12 00:31:44
    回文字符串是从左到右读和从右到左读完全相同的字符串。 //判断个字符串是否是回文 void IsHuiWen() { char str[100]; int i,j,n; printf("请输入段字符串:"); gets(str); n = strlen(str); ...
  • 1、在CAD中画个正方形,没有任何角点在坐标原点上 2、点击修改工具栏的“移动命令”,选择刚刚画好的图形,选择个点为第个基点; 3、先输入#号(shift+3),再输入0,0,用英文逗号隔开,enter即可 .....
  • UML用图总结(

    千次阅读 2012-10-03 10:33:00
    首先来看一张即时通讯里的个用图。    看这张图,第反应是乱,没条理。再来分析下这张图,管理好友可以理解成级用例,实际上它是个虚拟用例,查找好友是个二级用例,以后的操作都是建立在查找...
  • 起来学UML(5)——用

    千次阅读 2011-08-31 22:45:14
    用例是组动作序列的描述。 用图是现实组用例、参与者以及他们之间的关系的图。 用图在与客户探讨需求,以及写需求的时候非常有用。 我们通过Umbrello来创建个用图。在左侧“User Case View”点击...
  • 图详解

    万次阅读 多人点赞 2016-11-03 11:47:35
    对于用图来说我们需要了解的是什么叫用图,构成用图的要素,用图有哪些重要的元素,各个用例之间的关系。当然最重要的是如何根据需求创建用图。具体的创建通过个简单的学生管理的例子说明创建的过程和...
  • java设置job时间 :每小时

    千次阅读 2019-05-29 15:24:01
    1:每隔5秒执行次:*/5 * * * * ? 2:每隔5分执行次:0 */5 * * * ? 在26分、29分、33分执行次:0 26,29,33 * * * ? 3:每天半夜12点30分执行次:0 30 0 * * ? (注意日期域为0不是24) 每天凌晨1...
  • plantuml 之用图()

    千次阅读 2018-06-17 18:28:56
    扩展也是连接的种, UML 中的 “extend” 语义. 语法为 --|> <|-- 关于上述语法的 - 数量, 及 - 使用用 . 代替, 同 [连接]. 效果见图 2-5. 图 2-5 图 2-5 代码, 来自官方...
  • 图-功能模型

    千次阅读 2019-09-13 12:04:05
    绘制方法 绘制用图时,我们需要明确角色和用例,用例和用例之间的...包含关系是指一个用例在执行过程中,会调用另外个用例来完成相关任务,也就是在个用例的内部包含了另外个用例。例如,用户注册和用户登...
  • C语言经典例题(菜鸟教程100

    万次阅读 多人点赞 2018-09-04 18:47:59
    学习c语言基础,怎么能少了菜鸟教程上的100道例题呢,这里...3,个整数,它加上100后是个完全平方数,再加上168又是个完全平方数,请问该数是多少? 4,输入某年某月某日,判断这天是这一年的第几天? 5,...
  • UML 用

    千次阅读 多人点赞 2018-04-23 11:36:12
    UML 用图 参考 【UML】— 用图 用图 初学UML——用图 需求中如何画用图 为什么使用用图 从业务事件、发起事件以及系统如何响应这些事件来建模系统功能的过程。 用例建模起源于面向对象建模...
  • 水仙花数是指一个N位正整数(N≥3),它的每个位上的数字的N次幂之和等于它本身。例如:153=1^3 + 5^3 + 3^3​​ 。 本题要求编写两个函数,个判断给定整数是否水仙花数,另个按从小到大的顺序打印出给定区间(m,...
  • 吉他6种常用

    千次阅读 2012-07-02 22:41:36
    6个型,以C调为,其它调式只是移动了小的型音阶。比如C大调的La型音阶在第6弦5品,在D大调就是7品,下移了2品 另转篇对型的理解: http://blog.sina.com.cn/s/blog_5378cbb50100ddye.html ...
  • UML用

    千次阅读 2016-01-15 21:52:45
    当需要对系统整体或者某部分功能进行行为建模时,就能够使用用图了。   用图 基本语法 解释: 1、主角表示执行者(Actor),其表示的是与当前系统交互交互的人或者其他系统。 2、用例能够表示系统能够为执行...
  • 水仙花数是指一个N位正整数(N≥3),它的每个位上的数字的N次幂之和等于它本身。 本题要求编写程序,计算所有N位水仙花数。 ​ 输入格式: 输入在行中给出个正整数N(3≤N≤7)。 输出格式: 按递增顺序输出所有N...
  • 水仙花数是指一个 n 位数 ( n≥3 ),它的每个位上的数字的 n 次幂之和等于它本身。(例如:1^3 + 5^3+ 3^3 = 153) 输出10000以内的水仙花数
  • 画用

    万次阅读 多人点赞 2018-08-25 13:28:02
    图。 组成:系统边界。参与者。用例。关系。 参与者:Actor不是人,而是参与用例时担当的角色。 如果个角色的操作是由另个角色代理完成的,请建立该角色到另外角色之间的依赖。 怎样识别参与者呢? ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 634,147
精华内容 253,658
关键字:

一例是指多少