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

java基础知识总结

阅读更多

一、java 基础语法

if-else
for
while
break
用于跳出for,while,do while,switch, 其他情况下不能使用

continue
跳过本次循环, 继续下次循环

switch case 在每一句case 后必须有break 结束。不然case 一直执行到有break 终止 ,
多个case 可以并在一起使用。

为避免逻辑错误发生,default 一般写在最后面。

数组是引用类型,创建多维数组时, 必须指明第一维的大小

类型转换:
boolean
不可以转换
数据类型转换( 容量小的自动向容量大的转换)

质数:只能能被1 和他本身整除的数

二、字符串
String s1=new String("abc");
String s="aa";
1.单独使用"" 引号创建的字符串都是常量, 编译期就已经确定存储到String Pool
.
2.
使用new String("") 创建的对象会存储到heap, 是运行期新创建的
.
3.
使用只包含常量的字符串连接符如"aa" + "aa" 创建的也是常量, 编译期就能确定, 已经确定存储到String Pool.( 编译器做了优化
.)
4.
使用包含变量的字符串连接符如"aa" + s1 创建的对象是运行期才创建的, 存储在heap
.
5.
使用"aa" + s1 以及new String("aa" + s1) 形式创建的对象是否加入到String Pool 中我不太确定

6.s1
调用intern() 方法将heap 中的s1 放入String pool
1.
String s1 = new String("abc") ;
String s2 = new String("abc") ;
上面创建了几个String 对象 ?
答案:3,"abc" 在编译期Constant Pool 中创建1,new String()s1 在运行期时heap 中创建
.
s1
s2 地址不等, 但是内容相等

String
类重写了Object 中的equals 方法( 根据字符串内容比较
)
2.

String s1 = "s1";
String s2 = s1;
s2 = "s2";
s1
指向的对象中的字符串是什么
?
答案: "s1"

三、面向对象程序设计OOP

使用new 关键字创建对象的三个作用
1.
为对象实例分配内存空间
2.
调用构造函数
3.
返回对象实例的引用

面向对象核心: everything is object
面向对象特征:封装 继承 多态

3. 代码执行步骤
1)
调用方法执行步骤
1 )为被调用方法分配临时存储空间(栈空间)
2 )实参值赋给形参
3 )程序流程跳到被调用方法中执行

4 )被调用方法完成程序流程跳回主调用方法并带回返回值(如果有的话),同时被调用方法的临时空间被释放。

2) 创建对象的步骤(1 )递归构造父类对象 (2) 分配内存空间 (3 )初始化属性(4 ) 调用本类构造方法

3)Java Test 命令的执行步骤:(1 )启动JVM2 )找到Test.class3 )加载Test.class4Test.main() 类执行入口
面向对象三大特点: 封装, 继承, 多态
1
、封装
主要是指隐藏(private 关键字修饰)本类某些属性,可提供getXX/setXX 方法供外部类读或写数据。

setXX 方法中可以检测输入数据是否合法。读方法仅仅供外部类查看属性值。

2 、继承
父类派生子类
同类型事物子类扩展父类, 子类继承父类所有东西
: 私有方法不可继承

私有属性可继承但不可用构造不可继承( 子类构造默认调用父类构造 )
java
支持单继承,java.lang.Object 是每个类的根类

<
为每个类添加无参构造, 无参构造只有在类没有显示提供任何构造方法时系统提供, 否则, 系统不提供 >
访问权限修饰符:( 仅编译时有效
)
private
仅本类可用

default(
默认不写), 本类, 本包可用
protected
本包, 本类, 不同包继承子类可用 .
public
本类, 本包, 子类, 不同包可用
.
子类继承父类方法后子类方法权限不可变小, 抛出异常类型不能变大( 是本类或其子类
)
继承的优点:

1
)提高代码复用,减少代码冗余。
2
)为多态提供理论基础。
重写:方法名,参数列表,返回值类型与重写前的都要一致。
重写仅发生在父类与子类之间。
子类方法不能缩小父类方法的访问权限
子类方法不能抛出比父类方法更多的异常
存在于父类和子类之间
重写父类方法可以使子类功能更强大更完整。
方法的重写Overriding 和重载OverloadingJava 多态性的不同表现。
重写Overriding 是父类与子类之间多态性的一种表现,重载Overloading 是一个类中多态性的一种表现。

重载方法名时参数类型、个数、顺序至少有一个不相同
不能重载只有返回值不同的方法名(方法调用会混淆)
存在于父类和子类、同类中

3 、多态
父类引用指向子类对象。编译时父类引用,运行时子类对象。
好处:为参数传递提供统一的父类引用。
父类引用不能直接调用子类附件的属性和方法,需强制类型转换后才可以调用。
强制类型转化之前用instanceof 判断父类引用是不是指向一个具体子类对象,若是,则可以强制转化为子类引用。否则编译器报错。
多态思想三要素 1 、继承 2 、重写 3 、父类引用指向子类对象

java 中参数传递遵循值传递原则:基本属性类型传递该数据值本身,
引用类型传递该对象的引用的具体地址,而非对象本身。
父类引用--> 子类引用, 转化前需判断是否同质(instanceof), 不同质则不允许强制转化
优点: 利用父类提供统一编程.

关键字:
1
this/super 分别指本类对象和父类对象。
this(XX)
(调用当前对象构造方法)
super(XX)
(调用父类对象构造方法)
两者只能用于构造方法第一行,并最多出现一次。因此this(XX)/super(XX) 不能同时出现在构造方法中。
this/super
. 运算符分别调用本类方法和父类方法。

2static 修饰变量和方法
static
属性类加载时分配在静态池中,归整个类所有。
static
方法类加载时执行一次,归所有对象共同所有。
static
属性和方法均建议通过类名+. 运算符调用。

3 final
final
修饰类,该类不能被继承,该类所有方法不能被重写。

final
修饰变量,指final 后变量引用不能改变,但是赋值可以通过构造方法传参的形式改变,因此final+ 变量不能称之为常量。
常量定义方式为private static final int num=0; 定义就要赋值。
final
修饰方法,该方法不能被重写。父类非final 方法可以重写为final 方法。
final
关键字的作用
final
是一个常量,相当与c++ const
final 定义的变量只能赋值一次(显示初始化或在构造方法中赋值)不能再次改变值。

final 定义的类,不能再次被继承
final 的方法不能被子类重写

4 abstract
抽象类,未实现的类。

抽象类不能被实例化。
子类继承抽象类,并重写父类抽象方法。不然子类也是抽象类。
含有抽象方法的类一定要定义为抽象类,抽象类不一定含有抽象方法。
抽象类主要用于定义规范和统一编程。
抽象类: 抽取子类共性, 定义一种规范
抽象类不能实例化, 但可以作为编译时类型
包含抽象方法的类一定要声明为抽象类, 抽象类不一定含有抽象方法( 可以有实现的方法)

接口 100% 纯抽象类
接口是一种特殊的抽象类, 定义一种规范
接口中变量为static final 的常量
接口中方法为public abstract, 实现接口方法必需修饰为public
类可以实现implements 多个接口

equals目的是判别对象内容是否相等(判断对象间是否相等的逻辑方法)
Object
类中equals 方法是根据对象地址比较的,因此需重写equals 方法
根据对象比较标准重写equals 方法,public boolean equals(Object obj)

java.lang.object 类方法

注:构造方法不能手工调用,在对象的生命周期内构造方法只调用一次。

容量大的转换容量小的要加强制类型符号

多种数据类型转换时候,系统首先将所有数据类型转化为最大的哪一种数据类型
浮点默认为double 整型默认为 int
byte,short,char->int->long->float->double

分享到:
评论

相关推荐

    java知识点汇总

    首先,从【标题】:“java知识点汇总” 和【描述】:“内容较杂,有java初中高级知识点,也有Java web架构及原理”来看,涉及的内容包括了Java的序列化与反序列化、IO流的基础知识、多态的概念、泛型的应用、反射...

    java知识点总结

    java知识点总结 一、Java 概述 Java 语言的发展始于 1991 年,由 Sun 公司的 James Gosling 等人开始开发,最初命名为 Oak,旨在用于控制嵌入在有线电视交换盒、PDA 等的微处理器。1994 年更名为 Java。Java 语言...

    java 基础知识总结(经典)

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

    Java基础知识点总结.docx

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

    JAVA基础知识总结.

    JAVA基础知识总结 JAVA基础知识总结 JAVA基础知识总结

    Java基础知识总结

    Java基础知识总结 一些的基础知识 适合初学者和回顾以前的知识

    java 基础知识总结

    自己在网上找的相对好一点的java复习资料,留个纪念 。详细讲述了Java课程的知识点

    JAVA基础知识总结

    Java基础知识总结涵盖了Java程序设计语言的核心概念和常用知识点。在详细学习和总结这些知识点之前,首先需要对Java有一个整体的认识。Java是一种面向对象的编程语言,它具有跨平台的特性,即“一次编写,到处运行”...

    java基础知识总结(经典)

    Java 基础知识总结是 Java 程序员不可或缺的一部分,本总结将涵盖 Java 的基础知识,包括 Java 概述、Java 语法基础、变量、数据类型、运算符、控制语句、方法、数组、继承、多态、接口、异常、IO 流等。 一、Java ...

    2024版Java基础知识总结(超详细整理)

    2024版Java基础知识总结(超详细整理)2024版Java基础知识总结(超详细整理)2024版Java基础知识总结(超详细整理)2024版Java基础知识总结(超详细整理)2024版Java基础知识总结(超详细整理)2024版Java基础知识...

    JAVA知识点总结(XMIND格式)

    以上知识点在"JAVA知识点总结思维导图(xmind)"中可能以思维导图的形式详细展开,包括每个主题的子话题和相关实例,帮助学习者系统地理解和掌握Java编程。通过深入学习和实践这些知识点,可以成为一名熟练的Java...

    Java基础知识总结 (绝对经典)

    ### Java基础知识总结(绝对经典) #### 一、Java概述 - **起源与发展**:Java语言始于1991年Sun公司的James Gosling等人所开发的Oak语言,原计划用于控制嵌入式设备如有线电视交换盒和个人数字助理(PDA)。1994年...

    Java基础知识汇总

    jdk,eclipse使用,循环,数组,基础API,面向对象,循环,运算符,关键字,String详解,IO流

    Java知识点总结2019

    Java知识点总结2019,其中包括了基础、面向对象、api部分、集合类、多线程、GUI、Jdbc、网络编程、io流。

    java基础知识总结(经典).pdf

    ### Java基础知识总结 #### 一、Java概述 Java是由Sun Microsystems公司(现已被Oracle收购)在1991年由James Gosling领导的团队所开发的一种面向对象的编程语言。最初被命名为Oak,目的是为了控制嵌入式设备和...

    Java知识点总结文档

    Java知识点总结文档全面涵盖了多个Java相关的技术领域,包括JVM、Java集合框架、多线程并发、基础语法、Spring框架的原理、微服务、Netty与RPC通信、网络编程、日志管理、分布式协调工具Zookeeper、大数据存储系统如...

    java知识点总结思维导图(xmind)

    这份"java知识点总结思维导图(xmind)"是为帮助学习者系统性地理解和掌握Java核心技术而精心整理的资料。思维导图作为一种有效的学习工具,能够帮助我们更好地组织和记忆信息,提高学习效率。 首先,让我们从基础...

    java基础知识点总结

    java基础知识点,面试宝典,最适合你的java面试知识点,所学java知识点总结

Global site tag (gtag.js) - Google Analytics