关于java创建对象的问题。

问题描述

关于java创建对象的问题。

有B a(){};
1、B b = new B();
b=a();
2、B b = a();
这两种有什么区别?哪一个更好呢?希望能详细解释一下,谢谢。

解决方案

好比
int a() { return 1; }

int x = 0;
x = a();
其实显然让x=0是多此一举,直接int x = a();就可以了。

你的代码更糟,因为new一个对象的开销更大。

解决方案二:

第二种更好。因为new B();就你的代码来说根本没用到。

解决方案三:

很显然第二个好。
第一种情况(修改一下):
B b; // 无用的初始化= new B()
b=a();
第二种情况:
B b = a(); // 创建对象的时候直接初始化

解决方案四:

第二种好,二是对一的代码优化

时间: 2024-09-17 04:44:19

关于java创建对象的问题。的相关文章

Java如何创建对象问题

问题描述 Java如何创建对象问题 新手求助. Java中创建对象,一般是new 类名():来搞定. 如果有人问我,可不可以不用构造函数来创建对象? 我回答:可以,比如说正则表达式中的Pattern类,没有构造函数,需要使用其方法 compile(String regex) 来将给定的正则表达式编译到模式中.返回了一个Pattern类的对象.如此便创建了对象. 请大神给点意见,这样可以吗?或者说说不使用构造函数如何创建对象. 多谢指点. 解决方案 java对象的创建是必须要构造函数的1.为了对创

Java中五种不同方法的创建对象_java

前言 作为Java开发者,我们每天都会创建大量的对象,但是,我们总是使用管理依赖系统(如Spring框架)来创建这些对象.其实还有其他方法可以创建对象,在接下来的文章中我会进行详细介绍. 1.使用new关键字 这是最常见的创建对象的方法,并且也非常简单.通过使用这种方法我们可以调用任何我们需要调用的构造函数. Employee emp1 = new Employee(); 0: new #19 // class org/programming/mitra/exercises/Employee 3

JAVA拾遗录

本系列博文主要收录Java中一些常见的但是平常又容易忘记.记错或者记混的知识点的集合.各个知识点之间没有必然的联系,可以随意跳着看,希望能够对各位同学有所帮助. 本博文持续更新.修改,转载请保留原文链接. 1. JAVA堆和栈的区别 堆和栈都是内存的一部分,有着不同的作用,而且一个程序需要在这片区域上分配内存.众所周知,所有的JAVA程序都运行在JVM上,这里所说的自然是JVM中的堆和栈. 最主要的区别就是栈内存用来存储局部变量和方法调用.而堆内存用来存储Java中的对象.无论是成员变量,局部变

解析Java程序中对象内存的分配和控制的基本方法_java

一.对象与内存控制的知识点 1.java变量的初始化过程,包括局部变量,成员变量(实例变量和类变量). 2.继承关系中,当使用的对象引用变量编译时类型和运行时类型不同时,访问该对象的属性和方法是有区别的. 3.final修饰符特性. 二.java变量的划分与初始化过程 java程序的变量大体可以分为成员变量和局部变量,成员变量可以分为实例变量(非静态变量)和类变量(静态变量),一般我们遇到的局部变量会在下列几种情况中出现: (1)形参:在方法签名中定义的局部变量,由调用方为其赋值,随着方法结束消

可能是最全的Java单例模式讨论

单例模式 最简单但是也挺困难的. 要保证在一个JVM中只能存在一个实例,要考虑到如下的情况: Java能够使用那些方式构建对象 Java在创建对象时多线程并发情况下是否仍然只能创建一个实例 Java创建对象的方法: new 最常用的,直接使用构造器创建. 每new一次都会产生新的实例.所以单例中应该只new一次,当再想用对象时都返回该对象的值 Class.newInstance() 该方法会调用public 的无参构造器. 为了防止这个方式创建,只要把构造器设置为private的就可以了.这是如

java面试题—精选30道Java笔试题解答(一)

 下面都是我自己的答案非官方,仅供参考,如果有疑问或错误请一定要提出来,大家一起进步啦~~~   1. 下面哪些是Thread类的方法() A start()       B run()       C exit()       D getPriority() 答案:ABD 解析:看Java API docs吧:http://docs.oracle.com/javase/7/docs/api/,exit()是System类的方法,如System.exit(0).   2. 下面关于java.la

Java的clone()用法实例解析

1.背景          用java写程序的时候很苦恼的一件事就是,如果将一个对象a赋给另一个对象b,那么你改变a的变量值得时候,b的值也对应的变化.如果我们只想单纯的获取那个时刻的a的状况给b的话,就要用到clone方法了. 比如说如下代码: public class Main { public static void main(String[] args) { // TODO Auto-generated method stub Node n=new Node(); Node n1=n;

浅析Java中对象的创建与对象的数据类型转换_java

Java:对象创建和初始化过程 1.Java中的数据类型    Java中有3个数据类型:基本数据类型(在Java中,boolean.byte.short.int.long.char.float.double这八种是基本数据类型).引用类型和null类型.其中,引用类型包括类类型(含数组).接口类型.     下列语句声明了一些变量: int k ; A a; //a是A数据类型的对象变量名. B b1,b2,-,b10000;// 假定B是抽象类或接口. String s;      注意:从

javascript中的面向对象(object-oriented)编程

本文原发于我的个人博客,经多次修改放到csdn上,主要是做备份用,为了更好的阅读体验,请到我的个人博客上阅读. 最近工作一直在用nodejs做开发,有了nodejs,前端.后端.脚本全都可以用javascript搞定,很是方便.但是javascript的很多语法,比如对象,就和我们常用的面向对象的编程语言不同:看某个javascript开源项目,也经常会看到使用this关键字,而这个this关键字在javascript中因上下文不同而意义不同:还有让人奇怪的原型链.这些零零碎碎的东西加起来就很容