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 ...
随机推荐
- HTML编码规范、CSS编码规范
HTML编码规范 IE 兼容模式 IE 支持通过特定的 标签来确定绘制当前页面所应该采用的 IE 版本.除非有强烈的特殊需求,否则最好是设置为 edge mode,从而通知 IE 采用其所支持的最新的 ...
- 使用ControllerAdvice注意事项,Ambiguous @ExceptionHandler method mapped for [class org.springframework.web.bind.MethodArgumentNotValidException]
前言 ControllerAdvice非常好用,可以把系统内部的异常统一处理.用起来也很简单.比如,http://www.cnblogs.com/woshimrf/p/spring-web-400.h ...
- Tomcat localhost 8080打不开
最近发现一个问题,使用tomcat部署项目时,项目可以正常访问,但是localhost 8080打不开,总是出现404 为了找回那只可爱的tom,我先做了个测试 在tomcat的webapps文件夹下 ...
- 【二分图】ZJOI2007小Q的游戏
660. [ZJOI2007] 小Q的矩阵游戏 ★☆ 输入文件:qmatrix.in 输出文件:qmatrix.out 简单对比 时间限制:1 s 内存限制:128 MB [问题描述] ...
- VSCode好用的Python插件及配置
MS Python插件. 这是微软官方的Python插件,已经自带很多功能.下面是插件功能描述,其中部分内容我做了翻译. a) Linting (Prospector, Pylint, ...
- 一键下载你的youtube视频
很多人喜欢逛油管看视频,自然就会有一些喜欢的收藏集或者视频作者,有时候想要下载下来保存在本地播放,这样的话就不用每次FQ,毕竟有些代理的速度并不是很理想(如果你的代理速度炒鸡快的话,请忽略这篇文章). ...
- Chris Richardson微服务翻译:微服务之事件驱动的数据管理
Chris Richardson 微服务系列翻译全7篇链接: 微服务介绍 构建微服务之使用API网关 构建微服务之微服务架构的进程通讯 微服务架构中的服务发现 微服务之事件驱动的数据管理(本文) 微服 ...
- LeetCode第[16]题(Java):3Sum Closest 标签:Array
题目难度:Medium 题目: Given an array S of n integers, find three integers in S such that the sum is closes ...
- 激活IDEA
1 先跳过提示 2 点击regist 3 输入注册码 : 我的注册码在这里找的 - >> http://hw1287789687.iteye.com/blog/2153894
- $(document).ready()和window.onload之间的差异
最近使用$(document).ready(function(){})遇到一个问题:加载页面后发送数据请求后台,得到的数据不对,后发现请求后台时,发送的数据为空,没有获取到值导致的.------改成w ...