Java基础一览(会不断补充)

静态

静态变量从属于类
普通变量和方法从属于对象
静态方法不可以使用非静态的方法
普通变量可以使用静态方法

先执行父类的静态初始化块
静态初始化块是初始化类

package
必须要放在第一句

Java.lang 是一个核心包

import--导入----Java中自动导包的快捷键为ctrl+shift+O

面向对象的三大特征:继承;封装;多态

继承
Java的接口可以多继承,Java的类只有单继承
子类继承父类,可以得到父类的所有属性和方法除了父类的构造方法
Java.lang.object是所有类的祖宗类
选中类按ctrl+t可以直接打开继承树查看继承关系
instenceof 运算符
(对象 instenceof 类)

方法的重写(override)(及覆盖)
子类的方法替换父类的方法
重写时要保持方法名和形参列表保持相同
返回值类型子类要小于父类
子类的访问权限要比父类大

object的类中的方法
1.to String
2.equals方法(右击屏幕点击source后直接构造方法)

super位于构造方法的最顶层,在执行构造方式法时会先执行super及父类的方法
若父类为object则为空
程序设计时 会追求高内聚,低耦合

封装
访问控制符
一共有四个:
1.private:只有自己可以使用,表示私有只有自己可以访问
2.default:表示没有修饰符修饰,只有同一个包的类能访问
3.protected:表示可以被同一个包及其他包中的子类访问
4.public:表示可以被该项目中所有的类所访问

多态(polymorphism)
是指同一个方法的调用由于对象不同可能会有不同的行为

多态的三个必要条件
1.继承
2.方法重写
3.父类引用指向子类对象(*****)

final修饰常量,变量,方法,类。

修饰变量:一旦被final修饰变量不可改变,一旦赋了初值就不能被重新赋值
修饰方法:该方法不可被子类重写,但可以被重载
修饰类:修饰的类不可以被继承

抽象类:关键字(abstract)
方法:声明加实现
抽象方法必须在抽象类中定义。
抽象类中可以定义普通方法与普通属性
有抽象方法的类一定是抽象类
抽象类不能实例化,及不能用new来实例化抽象类
抽象类可以包含属性/方法/构造方法,但构造方法不能用来new 实例只能用来被子类调用
抽象类只能用来继承。
抽象方法必须被子类实现。

接口(interface)

For example:可以将接口看作为公司的规定,而类则是公司的员工,要接受各种
规范的约束,及类可以实现多个接口的功能。

可以在包里面直接建一个interface

接口里只有常量和抽象方法

设计和实现分离利于分工
在多人协作时使用

接口可以描述更加抽象的东西
进行更加抽象的定义
一个类可以实现多个接口

通过implements来实现

接口支持多继承

回调(CallBack)
多态的应用

superinterface
(1. 超接口
l 从直接的超接口( superinterface )中继承的成员。
blog.csdn.net|基于18个网页
2.
超级接口
超级接口(superinterface)从本质上来说一定还是一个接口。|评论
zhidao.baidu.com|基于4个网页
3.
超级界面
他没有任何方法,是所有消息的超级界面(superinterface)。
所有消息必须符合这个界面,相应的符合Serializable。)

内部类
作用:
1.内部类提供了更好的封装。只能让外部类“直接访问”。不允许同一个
包中的其他类直接访问。
2.内部类可以直接访问外部类的私有属性,内部类被当做其外部类的成员,
但外部类不能访问内部类的内部属性。

面向对象与面向过程
面向对象是用设计的眼光来看待问题(object)
对象就是在内存中的内存块
对象中会放一些变量及方法

类(class)可以看作是对象的模板称为对象的抽象
抽出类似的部分去定义一个类

通过抽象来创建一个类,程序通过类再产生对象
对象(object)(instance)
类中要有属性与方法
属性表示静态特征,及成员变量
方法的定义方式【修饰符】 方法返回值 方法名(){ }

类中还有构造方法,作用为初始化对象。
创建对象:类名 对象名=new 类名();

类名 对象名;//创建一个累的对象

Scanner
获取你输入的数据,用之前需要将 import java.util.Scanner;这个包导入

包装类与基本数据类型相对应一共有八种
包装类位于Java.lang包
实例:Integer 对象=new Integer(1000);
将1000包装成为一个对象。
Integer extends number类
Integer.toHexString():将i变为16进制
Integer.parseIn():将字符串转为数字

自动拆箱自动装箱是编译器做的

数组:

File类
separator:分隔符

异常机制,当遇到空指针的异常机制时,加上一个IF条件语句,让异常消失。

异常的处理方法之一
捕获异常(tyr,catch,finally)
try:格式:try{
//语句一;
//语句二;
//语句三;
}catch(Exceptione e){
//语句四;
}finally{
//语句五;
}

异常处理机制使用时一般将子类放前面,父类放后面。

写try—catch语句时的快捷键右键单击选定surround with,然后选Try/catch Block
会自动添加异常处理机制
补充内容:try/catch/finally/return的执行顺序:
1.执行try/catch,给返回值
2.执行 finally
3.return

声明异常throw处理异常的第二个方法
增加一个抛出的声明

关掉try/catch的是read.close

查看层次结构的方式——单击右键找到open Call Hierarchy
快捷键为——ctrl+alt+h即可查看层次结构

collection(容器)(也称集合框架)
实例如下:package cn.wk.collection;

import java.awt.List;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;

public class Collection_Demo {

public static void main(String[] args) {

Collection<String> coll01 = new ArrayList<String>();
coll01.add("bbbbbb1");
coll01.add("bbbbbb2");
coll01.add("bbbbbb3");
coll01.add("bbbbbb4");

coll01.size();
System.out.println(coll01);

//迭代器的使用1
Iterator it=coll01.iterator();
for(Iterator it1=coll01.iterator();it1.hasNext();) {
String str=(String) it1.next();
System.out.println(str+" ");
}
System.out.println(coll01.size());
boolean b1=coll01.remove("bbbbbb2");
System.out.println(b1);
System.out.println(coll01);

//添加一个集合
Collection coll02=new ArrayList();

coll02.addAll(coll01);
System.out.println(coll02);
}
}

增强的for循环
代码如下:
for(int m:a){

system.out.println(m);

}

用来遍历数组的元素。

IO流

概念:流是一组有顺序的,有起点和终点的字节集合,
是对数据传输的总称或抽象。即数据在两设备间的传输称为流。
流的本质是数据传输,根据数据传输特性将流抽象为各种类,
方便更直观的进行数据操作。
IO流的分类:根据处理数据类型的不同分为:字符流和字节流;
根据数据流向不同分为:输入流和输出流。

使用流程

一、
建立联系
File对象,源头
二、
选择流

文件输入流InputStream FileOutStream
三、
操作 write()+flash
四、
释放资源 关闭

详述请见网址:http://www.cnblogs.com/oubo/archive/2012/01/06/2394638.html,

字符流的两个顶层父类
1.Reader ,Writer

这些体系的子类,都以父类为后缀
而且子类名的前缀就是该对象的功能

文字为字符串使用与他关系最近的字符流
例:

//需求:将一些文件储存到硬盘的的一个文件中
记住:如果要操作文字数据,建议优先考虑字符流。
而且要将数据从内存写到硬盘上,要使用字符流中的输出流。Writer

流的规律
转换流:
INPUTSTREAM: 字节到字符的桥梁。解码

OUTPUTSTREAM: 字符到字节的桥梁。编码

流的操作规律:
之所以要弄清楚这个规律,因为流太多,不知道该用哪个

四个明确
1.明确源和目的(汇)
源:input stream reader
目的:output stream writer

2.明确数据是否是纯文本数据。
源:是纯文本数据:reader
否:input stream
目的是:writer
否:output stream

到这里可以明确具体使用哪个体系。

3.明确具体的设备。
源设备:硬盘:file
键盘:system。in
内存:数组
网络:socket流

目的设备:
硬盘:file
控制台:system。out
内存:数组
网络:socket流。

4.是否需要其他额外功能流对象。
1.是否需要高效(缓冲区)
是,就加上buffer。

原文地址:https://www.cnblogs.com/shuai9999/p/8947110.html

时间: 2024-10-12 01:17:23

Java基础一览(会不断补充)的相关文章

Java基础知识二次学习-- 第二章 基础语法与递归补充

第二章 基础语法与递归补充   时间:2017年4月24日10:39:18 章节:02章_01节,02章_02节 视频长度:49:21 + 15:45 内容:标识符,关键字与数据类型 心得:由字母,下划线,$,数字组成,应该由字母,下划线$开头,同时应该避开java保留字符 变量是内存中的一小块区域,使用变量名来访问这块区域 执行过程中的内存管理(疑问:这里的内存和Jvm的一样吗?) code segment 存放代码 data segment 静态变量 字符串常量 stack 栈 局部变量 h

java 基础(二)

java 基础(二)java 基础(二) 2016-2-1 by Damon 61. 编写多线程程序有几种实现方式 Java 5以前实现多线程有两种实现方法:一种是继承Thread类:另一种是实现Runnable接口.两种方式都要通过重写run()方法来定义线程的行为,推荐使用后者,因为Java中的继承是单继承,一个类有一个父类,如果继承了Thread类就无法再继承其他类了,显然使用Runnable接口更为灵活. 补充:Java 5以后创建线程还有第三种方式:实现Callable接口,该接口中的

Java基础——面向对象练习题

1.建立一个图形接口,声明一个面积函数.计算圆形和矩形的面积.注:体现面向对象的特征,对象值进行判断,用异常处理.不合法的数值需要出现"这个数值是非法的提示",不再进行运算. 2.在一个类中编写一个方法,这个方法搜索一个字符数组是否存在某个字符.如果存在则返回这个字符在数组中第一次出现的位置,否则返回-1.需要搜索的字符数组和字符都一参数的形式传递给该方法.如果传入的数组为NULL,则应该抛出IllegalArgumentException异常. 3.补充compare函数代码. 4.

Java基础随记

1. Java中子类中可以有与父类相同的属性名吗? JAVA里,子类里的属性名与父类的一个属性名一样,那么就说子类的这个属性把父类的这个属性隐藏了.子类的实例访问的是自己的,父类是不受影响的. 子类如果想访问父类的同名属性要加super 2. Java中子类继承了父类的私有属性及方法吗? 子类继承父类,子类拥有父类所有的属性和方法,于是使用程序去验证,发现父类的私有属性和私有方法,子类是不能访问的,当然一些父类的私有属性可能可以通过相应的方法访问到,但是私有的方法似乎不能简单的访问(这里暂不考虑

6-12 JAVA基础知识1

声明:学习时是参考<JAVA开发实战经典>,李兴华编,清华大学出版社 (1)public class 类名称必须与文件名一致: (2)类名称每个单词首字母必须大写: (3)输出中使用"+"进行连接: (4)文档注释:/**--*/ (具体作用还未知,待后续补充编辑): (5)数据类型分为基本数据类型和引用数据类型.其中引用数据类型主要用于地址操作,包括类,接口,数组: (6)避免数据溢出的两种方法.1.如变量前加(long)强制转换:2.表达式的常量后加L变为long型:

JavaSE入门学习7:Java基础语法之语句(下)

继续接着Java基础语法来:JavaSE入门学习5:Java基础语法(一)和JavaSE入门学习6:Java基础语法(二). 语句 Java经常使用的3种循环:while.do...while,for. (5)Java循环语句之while 语法: watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" > 运行

微冷的雨Java基础学习手记(一)

使用Java理解程序逻辑 之凌波微步 船舶停靠在港湾是很安全的,但这不是造船的目的 北大青鸟五道口原玉明老师出品 1.学习方法: 01.找一本好书 初始阶段不适合,可以放到第二个阶段,看到知识点时,要进行验证 02.查看帮助文档和搜索引擎的使用 借助网络上的Blog文章 03.不要急功近利 不要抱着速成的想法,否则必然走弯路学习编程不是一蹴而就的事情付出的成本高,才能有一个高薪的收入 04.不要浮躁 不要什么都学,只学有用的 浮躁的程度和技术水平成反比的走自己的路,让别人去浮躁去吧! 每天问问自

Java基础面试题集(二)

Java程序员面试题集(1-50) 一.Java基础部分 1.面向对象的特征有哪些方面? 答:面向对象的特征主要有以下几个方面: 1)抽象:抽象是将一类对象的共同特征总结出来构造类的过程,包括数据抽象和行为抽象两方面.抽象只关注对象有哪些属性和行为,并不关注这些行为的细节是什么. 2)继承:继承是从已有类得到继承信息创建新类的过程.提供继承信息的类被称为父类(超类.基类):得到继承信息的类被称为子类(派生类). 3)封装:通常认为封装是把过程和数据包围起来,对数据的访问只能通过已定义的界面.面向

Java基础Day4

Java基础第四天 1.1分支结构2:switch语句 1.根据变量的值,选择相应的case去判断,一旦满足case条件,就执行case的相应语句.如果没有break或者已经 到结尾的话,会继续执行其下的case语句. 2.default:是可选的,而且位置是灵活的. 3.变量可以是哪些类型?char byte short int 枚举 String(jdk1.7) 4.case 条件:其中条件只能是值,不能是取值范围! switch语句应用举例 import java.util.Scanner