一、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
)启动JVM
(2
)找到Test.class
(3
)加载Test.class
(4
)Test.main()
类执行入口
面向对象三大特点:
封装,
继承,
多态
1
、封装
主要是指隐藏(private
关键字修饰)本类某些属性,可提供getXX/setXX
方法供外部类读或写数据。
在setXX
方法中可以检测输入数据是否合法。读方法仅仅供外部类查看属性值。
2
、继承
父类派生子类
同类型事物子类扩展父类,
子类继承父类所有东西
注:
私有方法不可继承
私有属性可继承但不可用构造不可继承(
子类构造默认调用父类构造
)
java
支持单继承,java.lang.Object
是每个类的根类
<
为每个类添加无参构造,
无参构造只有在类没有显示提供任何构造方法时系统提供,
否则,
系统不提供
>
访问权限修饰符:(
仅编译时有效
)
private
仅本类可用
default(
默认不写),
本类,
本包可用
protected
本包,
本类,
不同包继承子类可用
.
public
本类,
本包,
子类,
不同包可用
.
子类继承父类方法后子类方法权限不可变小,
抛出异常类型不能变大(
是本类或其子类
)
继承的优点:
1
)提高代码复用,减少代码冗余。
2
)为多态提供理论基础。
重写:方法名,参数列表,返回值类型与重写前的都要一致。
重写仅发生在父类与子类之间。
子类方法不能缩小父类方法的访问权限
子类方法不能抛出比父类方法更多的异常
存在于父类和子类之间
重写父类方法可以使子类功能更强大更完整。
方法的重写Overriding
和重载Overloading
是Java
多态性的不同表现。
重写Overriding
是父类与子类之间多态性的一种表现,重载Overloading
是一个类中多态性的一种表现。
重载方法名时参数类型、个数、顺序至少有一个不相同
不能重载只有返回值不同的方法名(方法调用会混淆)
存在于父类和子类、同类中
3
、多态
父类引用指向子类对象。编译时父类引用,运行时子类对象。
好处:为参数传递提供统一的父类引用。
父类引用不能直接调用子类附件的属性和方法,需强制类型转换后才可以调用。
强制类型转化之前用instanceof
判断父类引用是不是指向一个具体子类对象,若是,则可以强制转化为子类引用。否则编译器报错。
多态思想三要素 1
、继承 2
、重写 3
、父类引用指向子类对象
java
中参数传递遵循值传递原则:基本属性类型传递该数据值本身,
引用类型传递该对象的引用的具体地址,而非对象本身。
父类引用-->
子类引用,
转化前需判断是否同质(instanceof),
不同质则不允许强制转化
优点:
利用父类提供统一编程.
关键字:
1
、this/super
分别指本类对象和父类对象。
this(XX)
(调用当前对象构造方法)
super(XX)
(调用父类对象构造方法)
两者只能用于构造方法第一行,并最多出现一次。因此this(XX)/super(XX)
不能同时出现在构造方法中。
this/super
加.
运算符分别调用本类方法和父类方法。
2
、static
修饰变量和方法
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 web架构及原理”来看,涉及的内容包括了Java的序列化与反序列化、IO流的基础知识、多态的概念、泛型的应用、反射...
java知识点总结 一、Java 概述 Java 语言的发展始于 1991 年,由 Sun 公司的 James Gosling 等人开始开发,最初命名为 Oak,旨在用于控制嵌入在有线电视交换盒、PDA 等的微处理器。1994 年更名为 Java。Java 语言...
这篇“Java基础知识总结(经典)”涵盖了Java开发中的核心概念和重要知识点,旨在为初学者和有经验的开发者提供一个全面的回顾。以下是主要的学习点: 1. **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基础知识...
以上知识点在"JAVA知识点总结思维导图(xmind)"中可能以思维导图的形式详细展开,包括每个主题的子话题和相关实例,帮助学习者系统地理解和掌握Java编程。通过深入学习和实践这些知识点,可以成为一名熟练的Java...
### Java基础知识总结(绝对经典) #### 一、Java概述 - **起源与发展**:Java语言始于1991年Sun公司的James Gosling等人所开发的Oak语言,原计划用于控制嵌入式设备如有线电视交换盒和个人数字助理(PDA)。1994年...
jdk,eclipse使用,循环,数组,基础API,面向对象,循环,运算符,关键字,String详解,IO流
Java知识点总结2019,其中包括了基础、面向对象、api部分、集合类、多线程、GUI、Jdbc、网络编程、io流。
### Java基础知识总结 #### 一、Java概述 Java是由Sun Microsystems公司(现已被Oracle收购)在1991年由James Gosling领导的团队所开发的一种面向对象的编程语言。最初被命名为Oak,目的是为了控制嵌入式设备和...
Java知识点总结文档全面涵盖了多个Java相关的技术领域,包括JVM、Java集合框架、多线程并发、基础语法、Spring框架的原理、微服务、Netty与RPC通信、网络编程、日志管理、分布式协调工具Zookeeper、大数据存储系统如...
这份"java知识点总结思维导图(xmind)"是为帮助学习者系统性地理解和掌握Java核心技术而精心整理的资料。思维导图作为一种有效的学习工具,能够帮助我们更好地组织和记忆信息,提高学习效率。 首先,让我们从基础...
java基础知识点,面试宝典,最适合你的java面试知识点,所学java知识点总结