`
gdwrx_winson
  • 浏览: 131528 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

Java 细节总结

    博客分类:
  • Java
阅读更多

Java 细节总结: 1. 用package的时候,要将原文件也放到相应的文件夹中才可以. 2. 用new产生的对象,用==判断一般是不同的,但是String a = "abc"; String b = "abc";编译器会产生优化,a和b是指向同一对象 3.equals从object上是直接用==来判断的,String重载了该类,使得其能对字符串的内容进行比较. 4. 每个java文件有且只能有一个public类,这个类的类名必须和文件名的大小写完全一样。其次,在你要运行的类中有且只能有一个public static void main(String[] args)方法,这个方法就是你的主程序。 5. 从标准输入中读取:BufferedReader cin = new BufferedReader( new InputStreamReader( System.in)); String s = cin.readline(); 初始化顺序 1、static类型: 在有对象创建的时候才会被初始化 2、一般变量 3、构造函数 Java volatile 类型修饰 关于volatile 我们知道,在Java中设置变量值的操作,除了long和double类型的变量外都是原子操作,也就是说,对于变量值的简单读写操作没有必要进行同步。这在JVM 1.2之前,Java的内存模型实现总是从主存读取变量,是不需要进行特别的注意的。而随着JVM的成熟和优化,现在在多线程环境下volatile关键字的使用变得非常重要。在当前的Java内存模型下,线程可以把变量保存在本地内存(比如机器的寄存器)中,而不是直接在主存中进行读写。这就可能造成一个线程在主存中修改了一个变量的值,而另外一个线程还继续使用它在寄存器中的变量值的拷贝,造成数据的不一致。要解决这个问题,只需要像在本程序中的这样,把该变量声明为volatile(不稳定的)即可,这就指示JVM,这个变量是不稳定的,每次使用它都到主存中进行读取。一般说来,多任务环境下各任务间共享的标志都应该加volatile修饰。 Collections.unmodifiableSet() 二、 Collections的unmodifiableSet方法 Collections的unmodifiableXXX方法设定一个Collection或Map为只读,有四中类型,分别对应 Collection、List、Set、Map。他只有一个参数,一般的写法会是这样: Set set = new HashSet(); ..... set = Collections.unmodifiableSet(set); 此时如果你对容器实施写操作的话,会抛出UnsupportedOperationException。当然你可像 DisplaySetting一样,并不把容器本身的引用设为只读,而是提供给外部的接口的引用为只读。当然 可以自己提供一个私有的方法得到该引用,然后只允许自己对容器的内容修改。初看时感到很奇怪: private static final Set all = new HashSet(); public static final Set ALL = Collections.unmodifiableSet(all); Driver接口 主要数据库的JDBC驱动类名: 流程: Java应用程序--JDBC驱动程序管理器(DriverManager)--JDBC驱动程序(提供connect方法建立连接)--数据库 DriverManager类中所有方法都是静态的 一般不用亲自去注册驱动程序类的实例。---Driver接口的静态代码块中实现此功能。 JDBC URL用于标识一个被注册的驱动程序 语法: jdbc:subprotocol:subname 协议:子协议:子名称 DataSource方式加载 用DataSource建立连接,不需要在客户程序中加载JDBC驱动,也不用DriverManager类 在程序中,通过向一个JNDI服务器查询来得到DataSource对象,然后用getConnection来建立连接

 

 

main 里面能定义static类型变量吗?

不能:因为static类型变量是对于类而言的,不能在方法里面定义static变量。

 

序列化数据怎么重组成对象?----不调用构造函数重组的

 

在实现Serializable的类里定义private的readObject和writeObject,就会使得序列化时候会忽略默认机制----怎么访问private方法的呢?(默认的readObject会调用你自己写的private的readObject函数)

 

序列化的顺序是怎么的,存在多个对象引用的时候。

 

如果我们将两个都具有指向第三个对象的引用的对象进行序列化,会发生什么情况。

当我们从它们的序列化状态恢复这两个对象的时候,第三个对象会只出现一次吗?

如果这两个对象是序列化成独立的文件呢,在代码不同部分对它们进行反序列化,又会怎样?

------同一个序列化中,如果之前对象是共享的,那么恢复之后也是共享的。不同的序列化之间不存在共享。

 

Thinking in java 中关于static类型序列化的描述有点问题-----CADState里面,全部都设成了GREEN,怎么后来说期望原来的值呢?Line类定义的serializeStaticState和deserializeStaticState好像没用。

分享到:
评论

相关推荐

    java细节总结 非常适合初学者学习

    - 封装:隐藏实现细节,只暴露公共接口。 - 多态:同一种行为可以通过不同方式表现,如方法重写。 - 抽象:不关注具体实现,只关注接口。 - 范型:泛型提供类型安全,避免了类型转换的麻烦。 3. **常用包**: ...

    java 技术总结.--java 技术

    这篇“Java技术总结”将深入探讨Java的核心概念、语法特性、开发工具以及相关框架,旨在为学习者提供一个全面且深入的Java知识体系。 一、Java语言基础 Java是一种面向对象的编程语言,由Sun Microsystems(现已被...

    JAVA年度总结模板

    - **技术细节**:适当提及实现过程中的技术细节,如使用的编程语言(例如Java)、开发框架、数据库管理系统等。 ### 5. 工作态度与职业素养 - **积极态度**:表现出积极向上的工作态度,即使面对困难也能保持乐观...

    java面试总结文档

    ### Java面试总结文档知识点解析 #### 一、Java基础篇 - 概念 ##### 1. Linux概述 - **起源与发展**:Linux是由芬兰学生Linus Torvalds于1991年开始创建的一个开源操作系统内核。随着社区的不断发展与完善,Linux...

    黑马程序员入学Java精华总结

    ### 黑马程序员入学Java精华总结 #### 一、Java概述与基础知识 1. **何为编程?** - 编程是指通过编写计算机能够理解的指令来解决问题或完成特定任务的过程。这些指令通常被组织成算法,并使用某种编程语言实现。...

    java代码细节总结1.0版本.zip

    本资料“java代码细节总结1.0版本.zip”是针对Java编程的一些关键知识点和最佳实践的详细概述,旨在帮助开发者提升代码质量和效率。以下是根据提供的文件名“java代码细节总结1.0版本.md”可能涵盖的一些核心Java...

    java 一些细节知识

    在这个"java一些细节知识"的压缩包中,包含了一份名为"java test.doc"的文档,我们可以期待它涵盖了作者个人测试后总结的Java关键知识点。以下是对这些可能包含的内容的详细解释: 1. **变量与数据类型**:Java支持...

    java基础总结大全(笔记).pdf

    Java基础总结大全涵盖了Java编程语言的核心概念,从JVM、JRE和JDK的区别,到环境变量的设置,再到变量的定义和类型转换,深入浅出地讲解了Java的基础知识。 1. JVM、JRE和JDK: - JVM(Java Virtual Machine)是...

    java视频学习总结

    ### Java视频学习总结知识点 #### 抽象方法与抽象类 在Java中,抽象方法是一种没有具体实现(方法体)的方法,它仅提供方法签名,而具体的实现留给子类完成。一个类如果包含一个或多个抽象方法,那么这个类必须被...

    Java代码优化细节总结

    代码优化,一个很重要的课题。可能有些人觉得没用,一些细小的地方有什么...但是如果有足够的时间开发、维护代码,这时候必须考虑每个可以优化的细节了,一个一个细小的优化点累积起来,对于代码的运行效率是有提升的。

    java 基础知识总结(经典)

    这篇“Java基础知识总结(经典)”涵盖了Java开发中的核心概念和重要知识点,旨在为初学者和有经验的开发者提供一个全面的回顾。以下是主要的学习点: 1. **Java环境配置**:在开始编程之前,必须安装Java ...

    JAVA基础阶段总结

    ### JAVA基础阶段总结 #### 一、JAVA简介与特点 **JAVA** 是一种高级编程语言,它被设计用于编写能够跨平台运行的应用程序。由 Sun Microsystems 公司于1995年推出,并在2010年被 Oracle 公司收购。JAVA 技术以其...

    Java基础知识点总结.docx

    Java是一种广泛使用的面向对象的编程语言,其基础知识涵盖了多个方面,包括语法、面向对象特性、异常处理、多线程...以上只是Java基础知识的一个概述,每个话题都值得深入探讨和实践,不断学习和总结是提升技能的关键。

    Java技术文章总结

    Java技术文章总结,涵盖了许多Java开发中的核心概念和实践技巧,是学习和提升Java技能的重要资源。以下是对这些文章主题的详细解读: 1. **Java基础** - 类与对象:Java是一种面向对象的语言,理解类和对象的概念...

    java代码细节总结1.0版本.7z

    **Java代码细节总结1.0版本** 在编程领域,Java是一种广泛应用的面向对象的编程语言,以其健壮性、安全性和跨平台性而备受青睐。本总结主要关注Java编程中的关键细节,帮助开发者深入理解并优化其代码。 1. **基础...

    Java基础总结.pdf

    封装是通过类将对象的状态和行为封装起来,并对外隐藏实现细节,使用者只能通过公共接口访问对象。继承允许一个类(子类)继承另一个类(父类)的属性和方法,以此来实现代码的复用和类层次的构建。多态则是指同一个...

    java代码优化细节总结1.0版本.zip

    以下是对`java代码优化细节总结1.0版本`的一些核心知识点的阐述: 1. **避免冗余计算**:在Java编程中,如果一个值在多处被使用,应当将其存储在变量中,避免重复计算,提升执行速度。 2. **减少对象创建**:频繁...

    Java.xmind Java全面总结思维导图

    本资源含有百分之八十的Java技术总结,内容丰富,细节到位,适合Java初学者以及Java学习过半者,总结清晰明了,有很好的构建知识网络作用

    java语言要点总结

    ### Java语言要点总结 #### 一、Java中的对象操纵与引用 Java作为一种面向对象的编程语言,其核心特性之一就是对象的操纵与管理。在Java中,一切都是对象,包括基本数据类型也被包装成了对象的形式。Java通过引用...

Global site tag (gtag.js) - Google Analytics