JavaSE基础

javaSE基础回顾
第一章
使用记事本编写简单的Java程序步骤:
1:用记事本文本编辑器编写源文件,然后保存,其中后缀名为.java.(Hello.java程序中包含两个类,student和Hello)
2: 用javac命令进行编译。在dos终端中进入源文件的保存目录。倘若在第一步骤中保存在c盘的chapter1中。c:\chapter1>javac. Hello.java。编译后变为字节码文件,student.class和Hello.class
3: 解释运行字节码文件
使用java虚拟机的Java解释器(java.exe)来解释执行字节码文件。java程序总是从主类(含有主方法的类开始执行,因此需要进入主类字节码所在的文件目录)
c:\chapter1>java Hello(注意不带.class后缀名)
第二章
1:基本数据类型分为四种:逻辑类型(true和false)整数类型(byte、short、int和long)字符类型(char)和浮点类型(float和double)
整数类型:byte为一个字节,short为两个字节,int为四个字节,long为八个字节。
字符类型:与C语言不同的是,在Java中char类型是两个字节,且最高位不是符号位置,范围是0-65535,分别代表一个字符或者汉字。
浮点类型:float为四个字节,而且后面后缀必须为f/F。double类型占8个字节。
2:基本类型转换
把级别低的变量的值付给变量高得变量时,系统会自动地完成数据类型转换。
当把级别高的赋值给级别低的变量时候,必须使用显式转换,(类型名)要转换的值。
3:数组
float boy[]=new float[10];
float []boy=new float[10];
与C/C++不同的是,Java不容许在声明数组中的括号中指定数组元素的个数,若声明:
int a[12]或int[12]将导致语法错误。
length属性:数组的长度,如a.length。
数组是引用变量。
第三章
位运算符
在这里插入图片描述在这里插入图片描述
& 按位与(如果两个运算符全是一,则结果为1,否则为0)
| 按位或(如果两个运算对象全为0,结果为0,否则为1)
^ 按位异或(如果两个运算相同为0,结果为0,否则为1)
~ 取反
<< 左移,相当与*2
>> 右移,正数高位补0,负数由计算机决定
注意&与&&的区别,其中&&是短路与。
第四章
封装:封装可以使类具有独立性和隔离性;保证类的高内聚。只暴露给类外部或者子类必须的属性和操作。类封装的实现依赖类的修饰符(public、protected和private等)

继承:对现有类的一种复用机制。一个类如果继承现有的类,则这个类将拥有被继承类的所有非私有特性(属性和操作)。这里指的继承包含:类的继承和接口的实现。

多态一个类型在不同情况下的多种状态,通过只想父类指针来调用在不同子类中的实现方法。多态是在继承的基础上实现的。多态的三个要素:继承、重写和父类引用指向子类对象。父类引用指向不同的子类对象时,调用相同的方法,呈现出不同的行为;就是类多态特性。多态可以分成编译时多态(重载)和运行时多态

抽象、封装、继承和多态是面向对象的基础。在面向对象四大基础特性之上,我们在做面向对象编程设计时还需要遵循有一些基本的设计原则。
重载和重写:重载是函数名相同,函数类型或者函数参数个数不同,重载是在同一个类中。重写是在子类中重写父类的方法。
构造方法:与类同名的方法,负责初始化,也可以重载,无类型无返回值chapter4.2.6
类方法和实列方法:用static修饰的方法为类方法。实例方法既能对类方法也能对实例方法进行操作。而类方法只能操作类方法。一个类中方法可以相互调用,实例方法可以调用其它方法,类方法只能调用类方法。
类变量和实例变量:类方法和类变量可以看成共享变量或者方法。可以通过类名去调用。而实例变量和方法只能通过对象去调用。加载的时间也不同。
this关键字:1、在构造方法中代表使用构造方法创建的对象
2、在实例方法中代表当前使用的对象。且this不可以出现在类变量中。
访问权限
私有变量和私有方法:对于私有变量和方法,只有在本类中创建该类的对象时,这个对象才可以访问自己的私有成员变量和类中的私有方法。
公有成员变量和方法:在其他类中,可以创建对象访问公有成员变量和方法。
友好变量和方法:如果一个类和该类在一个包中。可以创建对象访问这些方法和变量。
友好类和public类:用public修饰的类称为公有类,一个程序只能有一个公有类。不能用protected和private修饰类。
拆箱和装箱自动装箱和拆箱就是基本类型和引用类型之间的转换,至于为什么要转换,因为基本类型转换为引用类型后,就可以new对象,从而调用包装类中封装好的方法进行基本类型之间的转换或者toString(当然用类名直接调用也可以,便于一眼看出该方法是静态的)。
反编译器和文件生成器使用反编译器javap.exe可以将字节码反编译成源码,查看源码类中的public方法的名字和public成员变量的名字。
第五章(继承和接口)
子类的继承性
1、子类和父类在同一个包中的继承性:子类继承了其符类不是private的成员变量作为自己的成员变量,并且也自然的继承了父类中不是private的成员方法,继承的成员变量和成员方法保持不变。
2、子类和父类不在同一个包中。子类不能继承父类中的友好方法和友好变量,其他和上述情况相同。
成员变量的隐藏和方法的重写:通过在子类中对进行申请变量,和从父类中继承的变量名相同,变量类型不同,实现隐藏了从父类中继承的方法。方法的重写是方法名类型和参数个数和父类中的方法完全相同。重写不容许降低权限。
super关键字
1、使用super调用父类的构造方法
2、使用super操作被隐藏的成员变量和方法。
final关键字
在这里插入图片描述
在这里插入图片描述
final类不能被继承。如果用final修饰父类中的一个方法,那么这个方法不容许子类重写。如果成员变量或局部变量被修饰为final,就是常量,在声明时必须赋值,且不能发生变化。
abstract类:因为父类方法的不确定性,所以设置抽象类,继承抽象类时要实现抽象类的所有抽象方法。抽象类中可以有实现的方法。在这里插入图片描述
接口:接口可以看作抽象的抽象类,不能有实现的方法。所有的抽象方法都是public
在这里插入图片描述
在这里插入图片描述
泛型:特点安全,提高代码的可重复性。通过反射机制,获取类的信息getclass()\getName().
例子:用Arraylist存储Dog对象,如果使用泛型,取出来不需要进行强制转换,待用自动的拆箱装箱。
在这里插入图片描述
集合:主要掌握四类结构,九种集合。
List结构:ArrayList类、LinkList类、Vector类、Stack类
Map结构:HashMap类、HashTable类
Set结构:HashSet类、TreeSet类
Queue结构:Queue接口
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
List结构:ArrayList类、LinkedList类、Vector类、Stack类
ArrayList顺序存储(add(),remove(),get()),读取较快,插入删除速度较慢
LinkedList链式存储,有很多骚操作,头插头删,尾插尾删等。读取慢一些
ArrayList与Vector的区别:
在这里插入图片描述
Stack是栈,后进先出。(push()和pop()方法)
Map结构:HashMap类和HashTable类
HashMap键值对:put(key,value);get(key)
HashTable和HashMap用法可以说是完全相同,但是有以下区别:
在这里插入图片描述
在这里插入图片描述
异常:分为检验性异常、运行时异常。可以由程序解决异常或者调用者解决
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
线和进程
根本区别:进程是操作系统资源分配的基本单位,而线程是任务调度和执行的基本单位

在开销方面:每个进程都有独立的代码和数据空间(程序上下文),程序之间的切换会有较大的开销;线程可以看做轻量级的进程,同一类线程共享代码和数据空间,每个线程都有自己独立的运行栈和程序计数器(PC),线程之间切换的开销小。

所处环境:在操作系统中能同时运行多个进程(程序);而在同一个进程(程序)中有多个线程同时执行(通过CPU调度,在每个时间片中只有一个线程执行)

内存分配方面:系统在运行的时候会为每个进程分配不同的内存空间;而对线程而言,除了CPU外,系统不会为线程分配内存(线程所使用的资源来自其所属进程的资源),线程组之间只能共享资源。

包含关系:没有线程的进程可以看做是单线程的,如果一个进程内有多个线程,则执行过程不是一条线的,而是多条线(线程)共同完成的;线程是进程的一部分,所以线程也被称为轻权进程或者轻量级进程。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
创建线程的两种方法
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
线程的对象只能启动一次,休眠后就将纳入阻塞状态。
线程的同步问题
在这里插入图片描述
**加粗样式
因为在num大于0时,线程1还未来得及将num–,线程2就已经进入了判断语句。解决上述情况就用同步代码块。
两种方法的区别
在这里插入图片描述
IO
如何判断输入输出流:以内存为标志
在这里插入图片描述
字节流(byte)和字符流(char)的区别:
在这里插入图片描述
File
创建文件,获取文件的一些信息
在这里插入图片描述
字节输入流读文件:
在这里插入图片描述当读到文件末尾时候返回值为-1;

字节输出流写入文件
在这里插入图片描述
字符输入输出流
在这里插入图片描述
缓冲流(可以按行读取)
在这里插入图片描述
在这里插入图片描述
Java网络基础(重点是套接字)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值