摘抄java基础

1、Java中Static的相关用法总结?(静态方法;静态变量;静态代码块)

  public static void main(String args[])执行的关键,在于有static。有了static之后,我们的public class不需要创建类的对象,即可以使用main方法。所以,引入了static,无需本类的对象,即可调用此方法。System.out.println,在系统这个方法中,我们查看API,可以得到out是System类的静态变量,println是out的方法。

  静态变量,多一个知识点。所有类的实例化对象共享该静态变量。也就是说,类装载的时候,只分配一块儿存储空间,所有此类的对象都可以操控此存储空间。

2、Java中内部类和外部类总结?

  一个类,只能有成员变量或者成员方法。

3、Java中的引用怎么理解?

  Java中除了基本数据类型,剩余都是引用类型。基础类型就一块儿内存;引用类型占两块儿内存。

4、Java中的变量初始化问题?什么时候必须初始化?什么时候Java会自动初始化?

  成员变量和局部变量。成员变量可以是基本数据类型,也可以是引用类型。成员变量即使不做初始化,Java会默认对它进行初始化,基本数据类型初始化为0和false,引用类型初始化为null。局部变量,必须自己来初始化。Java不会对其进行初始化。

5、JVM内存模型的理解?(内存分析)

  堆内存:装的是所有new出来的东西。引用指向堆内存。

  局部变量放在stack中。ArrayList aL = new ArrayList();aL在stack中,new出来的在Heap中。

  字符串常量放在Data区,如:System.out.println("the final ali is " + i);中的the final ali放在data区。

6、Java中类的理解?(四块:code,data,heap,stack)

  类名大写,变量和方法名小写。使用驼峰规则。

  类的每个成员变量,在不同的对象中有不同的值(除了静态变量)。而方法只有一份,同一个类的每个对象共享该类的方法。

7、Java特性有哪些?多态、重载、覆盖做一些简单解释。

  Java三大特性:封装、继承、多态。

  多态,分为编译时多态和运行时多态两种。

  第一种,编译时多态,就是指我们调用方法不用区分参数的类型,程序会自动执行相应的方法。int;double;(重写)

  第二种,运行时多态,就是指父类引用指向之类对象。当调用某一父类中的方法时,不同子类会表现出不同的结果。这样对于程序的扩展性起到了很重要的作用。狗继承自动物,狼也继承自动物,但是一个吃肉,一个吃屎,不一样。当你有一天也想写一个类来继承动物的时候,可以写自己的吃方法。(重载) 

  重载的话,我们知道参数变更早就了多态。那么在重写的时候有一些原则,子类重写父类,要跟父类有相同的名称,参数,返回值;并且重写后的访问权限只能大于等于父类的方法。

8、一个构造方法到底做了些什么?(执行过程)

  构造方法,和类同名,没有返回值。构造方法甚至不能用void修饰,否则会变为普通的函数,但可以用public,private,protected,default来修饰,不用static来修饰。(观察方法:看它名称;看它参数;看它返回值)

  局部变量,也就是实参会分配在栈内存中。对象则会被分配在堆内存中,调用构造方法的时候,将栈内存中的值传递到堆内存中去,同时栈内存之前分配的内存被回收。

  默认构造函数,Java会自动的给你定义无参的构造方法。一旦你自己写了一个构造方法,不管你写的是有几个参数的构造方法,系统不再为你定义构造方法了。即使无参的构造方法,系统也懒得给你定义。

9、this关键字的使用?

  创建对象是在堆内存中。this相当于在堆内存中的一个框框内,本框框内的对象,本类中

10、static关键字的使用?

  对所有类的对象,static成员变量只有一份。(堆、栈、data)static静态变量是放在data区。它是属于整个类的,不属于某一个对象。类可以直接访问,不同对象访问的是同一个static变量。

  静态方法只能访问静态变量。在static方法中,不能访问非static变量。

/********************************************************************************************************/

11、Java中是四种权限修饰符的阐述,留意在编程中public,protect,default,private的使用。

  public,protect,default,private四种修饰符。在面向对象编程思想中提供了封装,分别设置了不同的权限高低,提高了程序的安全可靠性。

  default提供了包权限,即Java中使用package对代码层次结构做了封装。我们以default为分界线,default提供了包权限,那么在同一个包下,可以访问。根据他们四个的权限范围,很显然。private在一个类内可以访问,在包内类外是不可以访问的。你想想,如果类内也不能访问的话,变量失去了意义。在范围往大了扩展,依次是protected和public,public很显然,任何地方都能访问,那么,很显然protect是在包外,子类中可以访问。以上是我们的大脑思维的过程。

  总结:default,包内。private,类内,包内。protect,包外,子类。public,任何。  

12、extends实现类,implements实现接口。在继承了父类方法,之类调用方法的时候产生了四种情况?

  this.和super.;分别调用了子类和父类。this和super都会在堆栈中创建一块儿内存,this指向自身。super指向自己身体中的父类。子类对象new出来的时候,在子类对象内部,有一个父类对象。所有有了几个规则:调用子类对象构造函数的时候,首先要调用父类的构造方法。(种子天性说):super(args[])调用父类构造方法,this(args[])调用子类自己构造方法。如果调用了super的构造方法,必须写在子类中的第一行。

  多态中,方法调用的优先级:

13、子类继承父类的时候,在堆内存中是如何布局分配内存空间的?

  Heap堆中new的之类的其中一部分是父类。父类作为种子在子类的身体之中,并且作为子类身体的一部分而存在;子类的范围比父类范围大。(子类把父类的私有变量继承了下来,但是不能使用。但是属于子类。)

14、对“父类引用指向子类对象”的理解?

  Animal a = new Dog();栈中是Animal对象a,但是堆内存中new的却是Dog对象。(其中Animal可以是父类,也可以是一个接口)。其中涉及:多态、动态链接、向上转型。

15、根类Object有哪些方法?

  Object类在java.lang.Object里面。这个java.lang.*包不需要导入,也可以直接用。

  .toString()方法;.equals()方法;

16、两个对象比较,比较的是什么?

  Cat cat1 =  new Cat();Cat cat2 = new Cat();cat1 != cat2,因为它们其实是两个应用,它们中存放的是对象的地址。

17、Java中instanceOf的用法?

  运行状态下,返回某一个对象是否是一个特定类的实例。

时间: 2024-12-09 02:37:05

摘抄java基础的相关文章

摘抄-----java codeReview要做的事

整洁的代码 清单项目 分类 使用可以表达实际意图(Intention-Revealing)的名称 有意义的名称 每一个概念只用一个词 有意义的名称 使用方案/问题领域名称 有意义的名称 类应该是比较小的! 类 函数应该是比较小的! 函数 只做一件事 函数 DRY(Don’t Repeat Yourself)原则,(拒绝重复) 函数 用代码来解释自己的做法(译者注:即代码注释) 注释 确定应用了代码格式化 格式 使用异常而不是返回码 异常 不要返回Null 异常 *参考自:http://techb

-Java基础-Java介绍

声明:本栏目所使用的素材都是凯哥学堂VIP学员所写,学员有权匿名,对文章有最终解释权:凯哥学堂旨在促进VIP学员互相学习的基础上公开笔记. java的介绍 1.1java简介 Java是一种可以撰写跨平台应用程序的面向对象的程序设计语言. 它最初被命名为Oak,目标设定在家用电器等小型系统的编程语言,来解决诸如电视机.电话.闹钟.烤面包机等家用电器的控制和通讯问题.由于这些智能化家电的市场需求没有预期的高,Sun放弃了该项计划.就在Oak几近失败之时,随着互联网的发展,Sun看到了Oak在计算机

第3篇-JAVA基础

第3篇-JAVA基础 每篇一句 :目标是给梦想一个期限,行动与坚持就是实现梦想的过程 初学心得: 遇到困难或问题,它不是休止符,而是引向你如何解决问题的标识 (笔者:JEEP/711)[JAVA笔记 | 时间:2017-03-26| JAVA基础 Ⅱ] 上篇回顾 上篇文章中我们学习了JAVA底层的运行机制与深入剖析以及解释其中JAVA基础代码的含义 本篇文章将JAVA基础Ⅱ全面剖析解释,因为JAVA基础非常重要,务必要牢记知识点!!! 1.JAVA基础语法格式 JAVA采用unicode编码 1

Java基础学习第五天——方法与数组

文档版本 开发工具 测试平台 工程名字 日期 作者 备注 V1.0 2016.02.24 lutianfei none 第三章Java基础语法 方法 方法就是完成特定功能的代码块,即函数. 格式: 修饰符 返回值类型 方法名(参数类型 参数名1,参数类型 参数名2-) { 函数体; return 返回值; } 详细解释: 修饰符,目前就用public static,后详解. 返回值类型:就是功能结果的数据类型. 方法名:符合命名规则即可,方便我们的调用. 参数: 实际参数:就是实际参与运算的.

2.35 Java基础总结①抽象②接口③设计抽象类和接口的原则④接口和抽象类的区别

java基础总结①抽象②接口③设计抽象类和接口的原则④接口和抽象类的区别 一.抽象 abstract作用:不能产生对象,充当父类,强制子类正确实现重写方法和类相比仅有的改变是不能产生对象,其他的都有,包括构造.属性等等任何一个类只要有一个抽象的方法就成了抽象类 抽象方法 public abstract A();①方法是抽象的,这个类也是抽象的:②子类必须重写抽象方法,除非子类也是抽象类 抽象类可以没有抽象方法,但一般不这么设计 二.接口 interface 接口也是Java的一种引用数据类型(J

java基础 计算今天距本月最后一天还剩多少天

Calendar  c = new GregorianCalendar();   //GregorianCalendar 是Calendar的一个具体子类,提供了世界上大多数国家/地区使用的标准日历系统. GredorianCalendar 是一种混合日历,可由调用者通过调用setGregorianChange()来更改起始日期. Calendar c = new  Calendar.getInstance(TimeZone.getTimeZone("GMT+08:OO"));  //

Java基础语法

Java的基础语法中包含字符集.标识符和关键字.变量和常量.语句.注释.运算符和表达式这些基本要素. 一.关键字 编程语言都有一些保留的单词,用于定义该语言,这些单词对于编译器有特殊含义,不能作为标识符使用: Java中的true.false.null这三个保留字,不能作为标识符使用,对于编译器有特殊含义: main是一个用于描述Java程序开始方法的特殊名称,它不是一个关键字: abstract 抽象 boolean 逻辑运算: 布尔 break 打破: 断开 byte 字节: case 例,

JAVA基础——重新认识String字符串

深入剖析Java之String字符串 在程序开发中字符串无处不在,如用户登陆时输入的用户名.密码等使用的就是字符串. 在 Java 中,字符串被作为 String 类型的对象处理. String 类位于 java.lang 包中.默认情况下,该包被自动导入所有的程序. 创建 String 对象有三种方法 String s1="我是字符串1"; String s2=new String();//创建一个空的字符串对象 String s3=new String("我是字符串2&q

第2篇-JAVA基础

第2篇-JAVA基础 每篇一句 :无论处在任何领域中,即使是在小的事情,都要让每一天有所价值 初学心得: 在学习的过程中,错误是很宝贵的,它一笔"财富",更是一种"价值" (笔者:JEEP/711)[JAVA笔记 | 时间:2017-03-24 | JAVA基础] JAVA基础 回顾 在上一篇文章中,最后提到两个问题, 相信读者们已经提前超额完成了"任务" 下面跟着笔者的思路,深入掌握JAVA底层的运行机制 JAVA运行机制 (重中之重) JAV