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 ...
随机推荐
- 转:JAVA常见错误处理方法 和 JVM内存结构
OutOfMemoryError在开发过程中是司空见惯的,遇到这个错误,新手程序员都知道从两个方面入手来解决:一是排查程序是否有BUG导致内存泄漏:二是调整JVM启动参数增大内存.OutOfMemor ...
- postfix : 452 4.3.1 Insufficient system storage
postfix Error Message: 452 4.3.1 Insufficient system storage --> 空间不足. 但是实际情况是我的各个分区都没有满,只是我的20G ...
- [js高手之路]html5 canvas教程 - 1px问题以及绘制坐标系网格
在canvas中,要画出1px的线条,默认情况下是不行的 context.beginPath(); context.moveTo( 100, 100 ); context.lineTo( 400, 1 ...
- IE iframe cookie问题(p3p)
IE iframe cookie问题(p3p) 前段时间碰到一个问题,就是在IE下,使用iFrame嵌入页面时,该页面的会话级别的cookie无法写入,导致服务端始终无法获取JSESSIONID,每次 ...
- ztree使用font-awesome字体的问题,
ztree要使用自定义图标字体的时候 需要自己做皮肤cssstyle,官方有文档,但是有些时候我们值需要简单的设置图标字体class样式 是没办法使用的,我们需要对两个函数进行修改. 下面是两个函数请 ...
- master_pos_wait函数与MySQL主从切换
背景 主从切换是高可用MySQL架构的必要步骤(即使用不发生,也要有备无患).一般设置为双M(M1.M2),假设当前状态为写M1,而M2只读,切换的大致流程如下: 1. 停止应用写M1,将M1设置为 ...
- 搬个小板凳,我们扯扯Docker的前生
一.新瓶装旧酒 首先我们需要知道,Docker是一个"箩筐": 1.存储:Device Mapper.BtrFS.AUFS 2.名字空间:UTS.IPC.Mount.PID.Net ...
- VS如何设置类或函数前不显示引用的数量
问题如下: 取消显示这个引用的步骤: 找到菜单栏: 工具 ---> 选项 ---> 文本编辑器 ---> 所有语言 ---> CodeLens 设置取消启用CodeLens, ...
- Go 语言打包静态文件
对于 Go 语言开发者来说,在享受语言便利性的同时,最终编译的单一可执行文件也是我们所热衷的.但是,一旦遇到我们需要分发的东西不只有可执行文件的时候,事情就变得稍微有点复杂了,例如,需要分发个默认的配 ...
- Vim 在 windows 环境下的初步配置
一..下载工具包 vim 程序:下载安装程序 vim-plug 插件: 下载插件管理文件 二. 安装 VIM 1.如果无特别要求,一路选择默认, 在类型选择时,选择 full 2. 配置 vim-pl ...