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 ...
随机推荐
- 漫话JavaScript与异步·第三话——Generator:化异步为同步
一.Promise并非完美 我在上一话中介绍了Promise,这种模式增强了事件订阅机制,很好地解决了控制反转带来的信任问题.硬编码回调执行顺序造成的"回调金字塔"问题,无疑大大提 ...
- mysql加锁读
Locking Reads 在同一个事务中,如果你先查询数据,随后对相关数据进行插入或修改,那么在标准的SLELECT中不会给出足够的保护.在你查询期间另一个事务可以更新或者删除相同的行.InnoDB ...
- JDK1.8中HashMap实现
JDK1.8中的HashMap实现跟JDK1.7中的实现有很大差别.下面分析JDK1.8中的实现,主要看put和get方法. 构造方法的时候并没有初始化,而是在第一次put的时候初始化 putVal方 ...
- webapi框架搭建-创建项目(三)-webapi owin
上一篇:创建项目(二) 在上一篇里,我们已经创建好了webapi应用,并已经部署到iis里,本篇讲如何用owin自宿主或是iis宿主来部署webapi应用. owin介绍 传统的asp.net网站只能 ...
- java指令重排序的问题
转载自于:http://my.oschina.net/004/blog/222069?fromerr=ER2mp62C 指令重排序是个比较复杂.觉得有些不可思议的问题,同样是先以例子开头(建议大家跑下 ...
- vue 设计日历表
日历的功能,我们会经常用到,且逻辑比较复杂,小算法较多,花了半天时间写了个,特此详记. 先贴图 功能阐述:返回本月不多说,设置工作日和节假日是为了公司制度需要,后台会有假日表来记录. 为了适应于vue ...
- DQN算法
DQN算法:基础入门看看 # -*- coding: utf-8 -*- import random import gym import numpy as np from collections im ...
- 格式化 输出 while ,else ASCII码 ,字节转换 ,逻辑运算
python (占位符) % (求余数) 示例 name = input("请输入你的名字") age =int(input("请输入你的年龄")) hei ...
- LABjs、RequireJS、SeaJS 哪个最好用?为什么?- 玉伯的回答
LABjs 的核心是 LAB(Loading and Blocking):Loading 指异步并行加载,Blocking 是指同步等待执行.LABjs 通过优雅的语法(script 和 wait)实 ...
- SPRINGCLOUD 开发学习记录
一个简单的微服务系统:服务注册和发现,服务消费,负载均衡,断路器,智能路由,配置管理 服务注册中心: eureka是一个高可用组件,没有后端缓存,每一个实例注册后向注册中心发送心跳,默认情况下,eru ...