- 浏览: 120352 次
- 性别:
- 来自: 广西
文章分类
最新评论
-
greemqqran:
这方法 源码,是怎么的哦?
可变参数,数组与集合之间的转换 -
greemqqran:
Arrays.asList
可变参数,数组与集合之间的转换 -
ricoyu:
引用? super E:接收的是E类型对象应该是: ? sup ...
泛型-
1,构造函数: a,函数名和类名相同。 b,没有返回值类型。 c,函数中不写return语句。 作用:可以对对象进行初始化。 比如:Person p = new Person();这句代码都做什么事情? a,加载Person.class 文件。 b,在堆内存中开辟空间,创建实例对象。 c,对对象中的属性进行默认初始化。 d,对对象中的属性进行显示初始化。 e,对对象进行自定义的初始化,通过构造函数来完成的。 f,在栈内存中定义变量存入对象的地址值,指向该对象。 什么时候定义构造函数呢? 在分析事物的时候,这个事物在一建立就需要一些属性或者执行一些行为。 这时就将这些属性和行为在构造函数中操作。 构造函数和一般函数在运行上的不同: 构造函数:在对象建立时,立刻调用与对应的构造函数。 一般函数:在对象建立后,需要执行时,在会被对象所调用。 注意: 在用class定义的类中,jvm会自动的在该类添加一个默认的构造函数,该函数是空参数的 。 如果类中自定义了构造函数,那么默认的构造函数消失。 构造函数在类中存在多个,是以重载的形式体现的。 构造函数之间互相调用,是通过this语句来完成的。 this语句一定定义在构造函数第一行,因为初始化动作要先执行。 ------------------------------ this关键字: this代表本类对象,this在函数内部,代表着该函数所属对象的引用。 其实就是哪个对象调用this所在的函数,this就代表哪个对象。 什么时候定义这个this? 当定义功能时,该功能内存使用到了本类对象时,就用this来表示。 用法:可以用来区分局部变量和成员变量同名的情况。 class Person { int age; Person(int age) { this.age = age; } public boolean compare(Person p) { return this.age == p.age; } } main() { Person p1 = new Person(30); Person p2 = new Person(20); p1.compare(p2); p2.compare(p1); } -------------------------------------------- static关键字: 特点: -- 随着类的加载而加载,随着类的消失而消失,静态成员的声明周期最长。 -- 优先于对象存在。 -- 被所有对象所共享。 -- 可以直接被类名所调用。类名.静态成员。 注意事项: -- 静态方法只能访问静态成员。 -- 静态方法中不可以写this,super关键字。 -- 主函数是静态的。 static是一个修饰符,只能修饰成员。被它所修饰的成员在共享区(方法区)中。 可以想想饮水机的例子。 ------------------------------------------ 主函数:可以被jvm所调用也直接用类名所调用,jvm到底给主函数传递了什么样的实际参数呢? jvm传递是new String[0]. java Demo haha hehe ------------------------------------------ 设计模式:解决某类问题行之有效的方法。 java 23种设计模式。 单例设计模式:保证了类在内存中的对象唯一性。 步骤: 1,私有化构造函数,不让其他类建立该类对象。 2,定义一个私有并静态的本类对象。 3,定义一个静态的方法对外提供该对象。 class Single { private static Single s = new Single(); private Single(){} public static Single getSingle() { return s; } } class Single { private static Single s = null; private Single(){} public static /*synchronized*/ Sinlge getSingle() { if(s==null) s = new Single(); return s; } } ----------------------------------------- 静态代码块: 特点:随着类的加载而执行,执行一次,优先于主函数执行。 作用,用于给类进行初始化的。 ----------------------------------------- 内部类: 其实就是将类定义在另一个类的里面,内部类可以定义在外部类的任意位置上。 内部类可以直接访问外部类中的成员,那是因为内部类只有一个外部类的引用,外部类名.this 而外部类要访问内部类必须建立内部类对象。 什么时候用内部类呢? 描述事物时,该事物内部还有事物,那么可以通过内部类来描述。 当内部类在成员位置上的时候,可以被成员修饰符所修饰。比如,private static 。 当内部类中定义了静态成员时,内部类必须是静态的,但是静态内部类就出现了访问局限性。 当内部类在具备位置上的时候,只可以访问被final修饰的局部变量。 被final修饰的局部变量是一个常量,只可以被赋值一次。 -----------------------------------------
发表评论
-
动态代理+注解实现用户权限控制
2012-12-23 00:01 1363首先第一步我们需要定义一个接口UserDao p ... -
JDK动态代理模式
2012-12-22 21:51 900package cn.dhcool.dynamic.proxy ... -
代理proxy模式
2012-12-22 20:45 0静态代理模式: 需要有一个公共的借口,还有一个真实的实现类, ... -
工厂模式下出现的问题-null异常
2012-12-15 18:31 922遇到了一个问题: public class Dao ... -
内部类详解
2011-12-09 21:23 666从Java1.1开始引入了内部类以来,它就引起了人们的激烈争论 ... -
动态代理实现
2011-11-22 02:03 1048package com.dhcool.proxy; ... -
内省总结
2011-11-19 02:43 843package com.dhcool.introspec ... -
线程锁
2011-10-10 13:27 822sleep(), wait(),yield(),这3个方法,s ... -
类似百度谷歌分页算法实现
2011-09-08 15:58 1594<%@ page language="j ... -
充当服务端代码
2011-08-05 16:53 676import java.net.*; import java ... -
获取文件中邮件的示例
2011-08-05 12:25 737import java.util.regex.*; impo ... -
正则表达式常用字符
2011-08-05 12:22 920构造 匹配 字符 x 字符 x ... -
正则表达式
2011-08-05 12:16 847第一种:1.定义匹配规则如:String qqreg = &q ... -
InetAddress
2011-08-04 21:59 904import java.net.*; class Inet ... -
B/S socket
2011-08-04 21:08 1030import java.net.*; import java ... -
TCP多线程文件上传
2011-08-04 14:51 897/* 上传图片 */ import java.io.*; ... -
网络编程基础
2011-08-04 14:25 838网络编程: 网络通讯中所需要了解的一些内容。 T ... -
一道题
2011-08-02 21:05 614/* 有五个学生,每个学生有3门课的成绩,从键盘输入以上数据 ... -
TCP
2011-08-02 20:46 781import java.net.*; import ja ... -
UDP
2011-08-02 20:35 864import java.net.*; import java ...
相关推荐
单例对象的创建可以在静态初始化块中完成,或者在getInstance方法中通过DCL模式实现。 在项目中,`src`目录可能包含了这些设计模式的源码示例,可以用来学习和理解如何实际应用单例模式和工厂模式。通过阅读和分析...
今天,我们主要介绍了Java单例模式实现静态内部类方法示例,涉及构造函数私有化等相关内容。 单例模式的定义 单例模式是指确保某个类只有一个实例,并且提供一个全局访问点来访问该实例。这种模式可以确保在整个...
2. 饿汉式(静态代码块) 与静态常量类似,只是实例化发生在类加载时,但不是在初始化阶段。 ```java public class Singleton { private static Singleton INSTANCE; static { INSTANCE = new Singleton(); } ...
单例模式的核心在于限制类的实例化过程,通常通过私有构造函数和静态工厂方法来实现。在C#中,我们可以创建一个静态私有变量来保存类的唯一实例,然后提供一个公共的静态方法来获取这个实例。如果实例不存在,那么就...
2. 饿汉式(静态代码块): 与静态常量类似,只是初始化时机不同,但同样是线程安全的。 ```java public class Singleton { private static Singleton INSTANCE; static { INSTANCE = new Singleton(); } ...
总的来说,单例模式是一种重要的设计模式,理解并熟练运用它可以帮助我们编写更加高效、可维护的代码。在Java等面向对象语言中,单例模式是经常被提及和使用的。在不同的场景下,我们可以选择合适的实现方式,以达到...
根据给定的信息,本文将详细解释几种常见的单例模式,并通过具体的Java代码示例来阐述每种模式的特点和实现方式。 ### 单例模式简介 单例模式是一种常用的软件设计模式,它保证一个类只有一个实例,并提供一个全局...
它通过减少同步代码块的范围,只在instance为null时才同步,这样既解决了多线程问题,又提高了性能。 4. 静态内部类(Initialization on Demand Holder) 静态内部类实现单例模式的方式是利用了类的加载机制来保证...
与静态常量类似,只是将对象的初始化放在静态代码块中。 ```java public class Singleton { private static Singleton INSTANCE; static { INSTANCE = new Singleton(); } private Singleton() {} public ...
2. 饿汉式(静态代码块):与静态常量类似,只是将实例化放在静态代码块中,保证线程安全。 ```java public class Singleton { private static Singleton INSTANCE; static { INSTANCE = new Singleton(); } ...
单例模式是一种设计模式,它的核心思想是确保一个类在整个应用程序中只有一个实例存在。这种模式在很多场景下非常有用,比如资源管理、日志记录、配置管理等,因为这些类通常只需要一个全局共享的实例来协调操作。 ...
- **解决办法**:常见的解决方案包括使用`synchronized`关键字标记同步代码块或同步方法、使用显式的锁如`Lock`接口等。 #### 六、死锁现象 死锁是指两个或两个以上的线程在执行过程中因争夺资源而造成的一种相互...
Java单例模式是一种设计模式,它保证一个类只有一个实例,并提供一个全局访问点。在数据库连接管理中,使用单例模式能有效控制资源,避免频繁创建和关闭数据库连接导致的性能损失和资源浪费。以下是对Java单例模式...
【深入浅出单例Singleton模式】 ...总的来说,单例模式是一种强大的设计模式,但需要谨慎使用,避免滥用导致设计复杂性增加和代码难以维护。理解其背后的原理和潜在问题,才能在适当的情境下有效地利用它。
单例模式是软件设计模式中的一种,它的主要目的是确保一个类只有一个实例,并提供一个全局访问点。这种模式在很多场景下都非常有用,比如控制共享资源的访问,或者创建昂贵的对象时,通过重用已存在的实例来提高性能...
2. 饿汉式(静态代码块):与静态常量类似,但初始化发生在类加载时,而非构造函数调用。 ```java public class Singleton { private static Singleton INSTANCE; static { INSTANCE = new Singleton(); } ...
单例模式的核心思想在于限制类的实例化过程,通常通过私有构造函数和静态工厂方法来实现。这样可以防止其他部分的代码直接通过 `new` 关键字创建新的实例。以下是一个简单的Java单例模式实现: ```java public ...
双重检测锁是一种在懒汉模式基础上优化的线程安全实现方式,通过减少同步代码块的数量来提高性能。 ```java public class SingletonDemon4 { private volatile static SingletonDemon4 instance; private ...
单例模式的核心在于限制类的实例化,通常通过私有化构造函数和静态工厂方法来实现。当类的实例第一次被请求时,会创建一个对象并将其存储在一个静态变量中,后续的请求都会返回这个已经创建的对象,而不是创建新的...
但在单例模式中,类的构造函数被私有化,防止外部直接实例化。这样就确保了没有其他方式可以创建类的新实例,除非通过预先定义好的公共静态方法。 单例模式的实现通常分为懒汉式和饿汉式两种方式。 1. **懒汉式**...