Java第一周总结(20160801-20160807)
day01:
1.常见的dos命令:
盘符: 进入指定的盘下面。
操作文件夹:
dir
列出当前控制台所在的路径下的所有文件以及文件夹。
cd 路径 进入指定的路径下。
cd ..
回退到上一级目录上。
cd \
回退到当前路径下的根目录。
md 文件夹的名字 创建一个文件夹
rd 文件夹的名字 删除一个空文件夹。 注意: 不能用于删除非空到的文件夹。
操作文件:
echo 数据>文件名
创建一个文件并且指定写入的数据。
type 文件名 查看指定的文件内容。
del 文件名
删除指定的文件。 注意: del后面如果跟一个文件夹,那么是删除一个文件夹中的所有文件。
*
通配符(可以匹配任意的文件名)
tab
内容补全.
cls
清屏
上下方向键
找回上一次所写过的命令。
exit
关闭控制台。
set
查看所有的环境变量信息。
set 环境变量的名字 查看指定的环境变量信息。
set 环境变量名字 = 路径信息
设置指定的环境变量信息。
set 环境变量名字
=
清空指定的环境变量信息。
set 环境变量名字 = 新路径;%环境变量名字% 在原有的基础上添加新的路径信息。
2.java的环境的搭建:
jre: java运行环境。 jre
= java虚拟机 + 核心类库(辅助java虚拟机运行的文件)
jdk: java开发工具集
jdk = jre + java开发工具
jdk目录的介绍:
bin: 存放的是java的开发工具。
db : JDK7附带的一个轻量级的数据库,名字叫做Derby。
include :存放的调用系统资源的接口文件。
jre : java运行环境
lib : 核心类库。
src.zip : java源代码
day02:
1.配置环境变量
配置path环境变量变的目的是让控制台可以在任意的路径下都可以找到java的开发工具。
classpath 环境变量:
设置了classpath环境变量的时候,启动jvm(java虚拟机)的时候,那么java虚拟机就会 根据classpath环境变量所保存路径信息下去
寻找对应的class文件。
设置classpath环境变量信息的有分号与没有分号
的区别:
1. 如果配置classpath环境变量信息没有加上分号,那么java虚拟机仅会在classpath所保存的路径下去搜索对应的class文件,不会在当前路径下去搜索了。
2. 如果配置classpath环境变量信息加上分号,那么java虚拟机除了会在classpath所保存的路径下去搜索对应 的class文件之外,如果能找到对应的class文件
那么就马上指定对应的class文件,否则还会去 当前路径下去搜索。
2.标识符
命名默认规则:
1. 包名
多个单词组成时所有字母小写(例:package com.itcast)
2. 类名和接口
多个单词组成时所有单词的首字母大写(例:HelloWorld)
3. 变量名和函数名
多个单词组成时第一个单词首字母小写,其他单词首字母大写(例:lastAccessTime、getTime)。
4. 常量名
多个单词组成时,字母全部大写,多个单词之间使用_分隔(例:INTEGER_CACHE)
3.注释
1.单行注释(line comment)用//表示,编译器看到//会忽略该行//后的所文本
2.多行注释(block comment)用/**/表示,编译器看到/*时会搜索接下来的*/,忽略掉/**/之间的文本。
3.文档注释用/** */表示,是java特有的注释,其中注释内容可以被JDK提供的工具 javadoc 所解析,生成一套以网页文件形式体现的该程序的说明文档。
4.常量
Java中常量的分类(六种):
整数常量: 所有整数
小数常量: 所有小数
布尔常量: 只有true和false
字符常量:使用’’引起来的单个字符
字符串常量:使用“”引起来的字符序列,“” 、“a” 、””
null常量: 只有一个值null
5.进制转换
6.变量
算术表达式,逻辑表达式
所有的byte型、short型和char的值将被提升到int型。
如果一个操作数是long型,计算结果就是long型;
如果一个操作数是float型,计算结果就是float型;
如果一个操作数是double型,计算结果就是double型。
day03
1.java运算符
1.1 算术运算符
1.2 (关系)比较运算符
1.3 布尔逻辑运算符
另:Java提供了短路逻辑运算符:&&和||
1.4 位运算符
day04
1.if语句
2.switch语句
3.while语句和do-while语句
4.for语句
5.转义字符
5.break和continue关键字
day05
1.return关键字和函数的重载
函数重载要求:1.函数名一致。2.行参列表不一致(形参个数或对应数据类型不一致)。3.与函数的返回值类型是无关的。
2.数组
day06
1.对象
定义:真实存在的唯一的事物。
类:同一种类型的公共属性与公共行为的抽取
java核心思想:找适合的对象做适合的事情
找对象的方式:
方式一:sun已经定义好了很多的类,我们只需要认识这些类即可创建对象使用
方式二:我们需要自定义类,通过自定义类创建对象。
2.成员变量与局部变量的区别:
1.自定义的位置区别:
1.成员变量是定义在方法之外,类之内的变量。
2.局部变量是声明在方法之内的变量。
2.作用上的区别:
1.成员变量的作用是描述一类事物的属性
2.局部变量的作用是提供一个变量给方法内部使用
3.生命周期区别:
1.成员变量随着对象的创建而存在,随着对象的消失而消失
2.局部变量是调用到了对应的方法执行到了创建该变量的语句时存在,一旦出了自己的作用域消失
4.初始值区别:
1.成员变量是由默认初始值的。
2.局部变量是没有默认的初始值的,必须要先初始化才能使用
3.匿名对象
定义:没有引用类型变量指向的对象就称作为匿名对象
匿名对象要注意的细节:1.一般不会给匿名对象的属性赋值,因为永远都没法获取到。2.两个匿名对象永远不可能是同一个对象
匿名对象的好处: 简化书写,节约内存,当调用匿名对象的方法后,该对象立刻成为垃圾对象;如果新建对象变量的话,需要等待主方法执行完后才能被回收。
匿名对象的应用场景;
1.如果调用一个对象的方法一次时,然后这个对象不再使用,那么这时候可以使用匿名对象
2.可以作为实参调用一个函数
4.封装:
1.使用private修饰需要被封装的属性
2.根据需要提供get或者set方法设置以及获取属性
封装的好处:
1.提高了数据的安全性
2.操作简单
3.隐藏了实现
注意:一般实体类的属性都会封装起来
day07
1.构造函数:
构造函数的作用:初始化对应的对象
构造函数的格式:
修饰符 函数名(形式参数){
函数体
}
构造函数要注意的事项:
1.构造函数是没有返回值类型的
2.构造函数的函数名必须与类名一致
3.构造函数不是我们手动调用的,是我们再创建了对应的对象时,JVM会根据你创建的对象传递的参数调用对应的对象
4.如果一个类没有显示写上一个构造函数的时候,那么java编译器会为该类添加一个无参的构造函数
5.如果一个类已经显式写上一个构造函数的时候,那么java编译器不会为该类添加一个无参的构造函数
2.构造代码块:
构造代码块的作用:给对象进行统一的初始化
构造代码块是在创建了代码块所属类的对象时调用一次
代码块的类别:
1. 构造代码块。
2. 局部代码块. 大括号位于方法之内。 作用:缩短局部 变量 的生命周期,节省一点点内存。
3. 静态代码块 static
3.this关键字
this关键字代表了所属函数的调用者对象
this关键字的作用:
1.一个类中存在同名的成员变量与局部变量时,在方法内部是默认访问局部变量的,可以通过this关键字访问成员变量
2.this关键字还可以在构造函数中调用另外一个构造函数的初始化对象。this(构造函数参数列表)
this关键字调用构造函数要注意的事项:
1.this关键字调用其他的构造函数时,必须要是在第一个语句
2.this关键字调用构造函数时不能出现相互调用,因为是一个死循环
3.如果在方法内部访问一个变量时,该变量只存在于成员变量中,局部变量没有,这时候java编译器会为该变量的前面添加一个tthis关键字
4.static(静态修饰符)
sttatic修饰成员变量时,那么该成员变量的数据就是一个共享的数据。
静态成员变量的访问方式:
方式一:使用对象进行访问。对象.属性名
方式二:可以使用类名进行访问。类名.属性名
注意:
1.非静态成员变量不能使用类名直接访问,只能使用对象访问
2.千万不要为了方便访问成员变量而使用ststic修饰,一定要是共享时才修饰
Added
1.static修饰成员函数
访问方式同上,推荐使用类名访问静态的成员
静态函数要注意的细节:
1.非静态函数只能由对象调用,静态函数可以由类名或者对象进行调用
2.静态函数中不能直接访问非静态成员,可以直接访问静态的成员
3.非静态函数可以直接访问非静态成员以及可以直接访问静态的成员
4.静态函数中不能出现this或者super关键字
核心思想:静态成员在内存中是优于对象存在的
2.main方法详解
3.单例设计模式
目的:保证一个类在内存中只有一个对象
饿汉单例设计模式:
1.私有化构造函数
2.声明本类的引用类型变量并且指向本类的对象,(引用类型变量的修饰符:private static)
3.提供一个公共静态的方法获取本类对象
懒汉单例设计模式
1.私有化构造函数
2,声明本类的引用类型变量,但不要创建对象
3.提供一个公共静态的方法获取本类对象,获取之前先判断是否已经创建了本类的对象,
如果没有创建,创建再返回,如果已经创建了,那么直接访问即可
4.继承:
继承的格式:
class 类名一 extends类名2{
}
继承要注意的事项:
1.父类私有的成员不能被继承
2.父类的构造函数不能被继承
3.创建子类对象时,默认会先调用父类的无参构造函数,然后再调用子类的构造函数
5.super关键字
定义:super关键字代表的是父类的引用空间
super关键字的作用:
1.如果子父类存在同名的成员时,在子类中默认访问子类的成员,可以通过super关键字指定访问父类的成员
2.创建子类对象时,默认会先调用父类的无参构造函数,可以通过super关键字调用指定父类的构造函数
super关键字要注意的事项:
1.如果在子类的构造函数中没有指定调用具体的父类构造函数,那么java编译器会在子类的构造函数上添加super语句
2.super关键字调用构造函数时,必须出现在构造函数中的第一句
3.this与关键字调用构造函数时,不能在一个构造函数中出现。
6.方法的重写
情况:子父类存在同名的函数
方法重写的需求:如果父类的功能无法满足子类的需求,那么进行重写
方法重写的步骤:
1.函数名与形参列表必须一致
2.子类的权限修饰符必须大于或等于父类的权限修饰符
3.子类的返回值类型必须小于或者等于父类的返回值类型(Animal类和fish类的对象)
4.子类抛出的异常类型必须小于或者等于父类抛出的异常类型
7.instanceof关键字
作用:判断一个对象是否属于某种类型
格式:
对象 instanceof 类
instanceof的使用前提:判断的对象与类型必须存在继承或者实现的关系