java基础复习1
jre:Java运行环境
jdk:Java开发工具(包含jre)
java两大机制:JVM (java虚拟机)
垃圾回收
变量的分类:
1.按数据类型分:
1)基本数据类型:8种
整型:byte short int long
浮点型:double float
字符型:char
布尔型:boolean
2)引用数据类型:
类:class
接口:interface
数组:[]
====================
负数取模:
-38%3=-2
38%-3=2
&和&&区别:
& 所有条件都要判断
&& 只要有一个条件不满足则为false 停止后面的判断
<<和>> 位运算符 将二进制数左右移动相应的位数得到结果 例:
2<<3 00010 →10000 =16
16>>3 10000→00010 =2
& 与运算符
16&2 =0
三元运算符
int max = 100<200 ? 1 : 2; max=1
如果Java文件中有public申明的类 例: public class Student{}源文件名和类名必须一致否则编译失败
在java文件中可以有多个类 但只能有一个public类型的类。、
数组:
申明数组:type [] varName=null;
为数组分配内存空间:varName=new type[length];
数组元素下标从0开始。
在创建数组时为其赋值的方式:
int n1[]={1,2,3};
int n2[]=new int[]{1,2,3};
错误方式: int n3[]=new int[length]{2,3,4};
类和对象:
面向对象的三大特征:封装 继承 多态
java中的每个类至少都有一个构造器 如果没有编写构造器 系统将默认提供一个无参的构造器 public Student(){} 一旦显示的定义了一个或多个构造方法 系统将不再提供默认的构造方法。
构造器的主要作用是 初始化对象的属性
形参和实参:
方法的重载:
同名方法通过 参数个数的不同或者参数类型不同进行重载 返回值可以不同
方法的重写:
变量个数 类型 返回值必须相同
子类方法的访问权限不能比父类的小
void add(int a,int b){}
void add(int a,int b,int c){}
void add(String a,int b){}
继承(解决代码的冗余):
子类继承父类的变量和方法但不能继承父类的私有成员变量和方法
super:
是子类对象方法中父类对象的引用
使用:1.在子类方法中调用父类对象的成员
2.在子类的中通过super(参数)的方式调用父类的构造器 例super(“耗子”,55);
默认情况下子类去调用父类无参的构造器 如果父类写了带参的构造器则系统不再提供默认的构造器而子类中必须调用一个父类的构造器
多态:
父类类型的变量指向一个子类对象,在调用父类中易已被重写的方法是就会产生多态
在多态的情况下 不能调用子类新添加的方法
在多态的情况下 可以对对象进行强制转换,只有在有父子关系的情况下可以进行强制转换
比较字符串用equals()
static 方法不能调用非static变量 非static方法可以调用static变量
单子模式:
1.私有化构造器
2.把对象私有静态化
3.提供对象的公有get方法,以供外部使用该对象
public class Single {
private Single(){}
private static Single instance = new Single();
public static Single getSingle(){
return instance;
}
}
public class TestSingle {
public static void main(String[] args) {
Single instance1 = Single.getSingle() ;
Single instance2 = Single.getSingle();
System.out.println(instance1==instance2);//true
}
}
final:是最终的属性不能被修改 即常量
final变量 必须在申明时被初始化 或在非静态代码块中或在构造器中被初始化
抽象 abstract:
有抽象方法的类一定是抽象类 抽象类不一定有抽象方法
抽象类不能被实例化
抽象方法没有方法体 只有方法是申明
接口:
接口是抽象方法和常量的集合 不能有其他的任何成分
接口中的方法默认为 public abstract
常量的默认修饰为:public static final
接口之间可以继承
内部类:
异常处理:
1.数组下标越界异常
2.数学异常
3.类型转换异常
4.空指针异常
catch后可跟多个catch但是父类不能再前面
finally语句一定会执行 try(){}后可直接跟finally
throws关键字抛出异常 可同时抛出多个异常 多个之间用,分割。
重写方法不能抛出比被重写方法更大的异常
java集合
Set:无序不可重复的集合
List:有序可重复的集合
Map:有映射关系的集合
foreach的语句格式:
for(元素类型t 元素变量x : 遍历对象obj){
引用了x的java语句;
}
Set集合:
无序 不可重复 若重复添加失败
HashSet 是Set最典型的实现
HashSet是根据hashCode()值来存放元素所以无序
判断两个元素相同的标准是equals()值返回true
HashSet线程是不安全的
LinkedHashSet有序
java基础复习1的更多相关文章
- Java基础复习笔记系列 九 网络编程
Java基础复习笔记系列之 网络编程 学习资料参考: 1.http://www.icoolxue.com/ 2. 1.网络编程的基础概念. TCP/IP协议:Socket编程:IP地址. 中国和美国之 ...
- Java基础复习笔记系列 八 多线程编程
Java基础复习笔记系列之 多线程编程 参考地址: http://blog.csdn.net/xuweilinjijis/article/details/8878649 今天的故事,让我们从上面这个图 ...
- Java基础复习笔记系列 七 IO操作
Java基础复习笔记系列之 IO操作 我们说的出入,都是站在程序的角度来说的.FileInputStream是读入数据.?????? 1.流是什么东西? 这章的理解的关键是:形象思维.一个管道插入了一 ...
- Java基础复习笔记系列 五 常用类
Java基础复习笔记系列之 常用类 1.String类介绍. 首先看类所属的包:java.lang.String类. 再看它的构造方法: 2. String s1 = “hello”: String ...
- Java基础复习笔记系列 四 数组
Java基础复习笔记系列之 数组 1.数组初步介绍? Java中的数组是引用类型,不可以直接分配在栈上.不同于C(在Java中,除了基础数据类型外,所有的类型都是引用类型.) Java中的数组在申明时 ...
- Java基础复习笔记基本排序算法
Java基础复习笔记基本排序算法 1. 排序 排序是一个历来都是很多算法家热衷的领域,到现在还有很多数学家兼计算机专家还在研究.而排序是计算机程序开发中常用的一种操作.为何需要排序呢.我们在所有的系统 ...
- 《Java基础复习》-控制执行流程
最近任务太多了,肝哭我了,boom 参考书目:Thinking in Java <Java基础复习>-控制执行流程 Java使用了C的所有流程控制语句 涉及关键字:if-else.whil ...
- 《Java基础复习》—常识与入门
突然发现自己Java基础的底子不到位,复习! 所记知识会发布在CSDN与博客网站jirath.cn <Java基础复习>-常识与入门 一.Java语言的知识体系图 分为三部分 编程语言核心 ...
- Java基础复习之数组
Java基础复习之:数组 简介 数组(Array):多个相同数据类型按照一定顺序排列的集合,并使用一个名字命名,通过编号的方式对这些数据进行统一管理 一维数组 一维数组的声明与初始化 int[] id ...
- java基础复习记录
java基础复习记录(数组.对象.异常) 数组 数组的定义 数组是相同类型数据的有序集合.如:篮球队就是一个数组,队员球服上有号码,相当于索引.通过某一个的某一个号码来确认是某一个队员.数组中索引从0 ...
随机推荐
- 每天学一点Docker(2)
容器runtime 容器runtime是容器真正运行的地方,runtime需要和操作系统kernel紧密结合,为容器提供运行环境. 比如说,java程序比作一个容器,JVM就是runtime.JVM为 ...
- mac SecureCRT设置
参考: http://www.2cto.com/os/201407/320292.html SecureCRT 设置 1)每次登陆都要输入密码: Global Option -> General ...
- MicroPython开发之物联网快速开发板
Python的火热让其运行在MCU端的MicroPython也逐渐迎来了春天.MicroPython的出现让Python这种"胶水语言"成功引用到嵌入式领域,也使得Python控制 ...
- 【软件】关于Notepad++(32位)
1.Notepad++安装包 简介:NotePad++是一个轻量级的代码编辑器,占用内存少,运行速度快. 官网网址:https://notepad-plus-plus.org/ 百度网盘:https: ...
- 浅谈Vue模板的那些事儿
接触过vue的童鞋都知道,组件的模板一般都是在template选项内定义的,如 Vue.component('child-component', { template: '<h3>我是闰土 ...
- Spring_Spring与AOP
一.传统编程使用代理解决目标类增强问题 //主业务接口 public interface ISomeService { // 目标方法 void doFirst(); // 目标方法 void doS ...
- .net 下发送calendar
前段时间公司系统中有一块需要发送邮件calendar outlook可以接受查看calendar 发送outlook主要是有rrule脚本的边界 网上找过一些资料,主要有两种实现方式 1.一种是已ic ...
- laravel ORM 命令2
一.查询 获取数据库所有数据 Model::all() 获取指定条件数据 Modle::where('status','1')->get() 获取第一条数据 Model::where('stat ...
- 一个通用的makefile(一)
最近在编写Android编译系统时,需要遍历每一个目录下每一个文件夹下的makefile,网上的方法有些繁琐 :就直接贴上自己遍历子目录深度为1:(for temporary)(之后会继续更新) 下 ...
- Java关于使用“final”修饰基本类型的注意事项
今天无意发现这样一道题,可以先做做看: 正确答案是BCD. 至于原因有人给出了参考答案: 1.所有的byte,short,char型的值将被提升为int型: 2.如果有一个操作数是long型,计算结果 ...