java面试复习重点:类的管理及常用工具,教你抓住面试的重点!
java复习: 类的管理及常用工具类
包
- 写在程序文件的第一行
- 一个Java 源文件中只能声明一个包,
且声明语句只能作为源文件的第一条指令 - 导入类能导入非public类,但是不能用因为在其他包缺省的权限用不了
package Testp;
import Testpackage.*;
public class C {
public static void main(String[] args) {
A a=new A();
B b=new B();
}
}//Testpackage.*只能导入
- 此时不将AB两类放在同一个.class文件不然有一个一定是非public类,C等下用不了这个非public
- 注意
.*是对于包来说的,当把AB分成两个class文件时就可以两个全部导入
了 - Java编译器为所有程序自动导入包 java.lang
- 无名包不能导入.* 无名包中的类无法被导入
- 静态导入的时候如果是import aa.;可以导入类的所有成员包括静态,如果是import static aa.A.;是导入A中的所有静态成员,非静态的就会报错,所以可以将A的所有成员改成静态的
- 一个class文件(.java)只能有一个pubic类如果一个包里面有多个public类即创建多个class文件
包装器类
Byte 、Short 、Integer 、Long 、Float 、Double 、
Character 、Boolean包装器类的2种构造函数
包装器类名(基本类型值)
包装器类名(基本类型值的字符串)
- Character类构造函数只能是字符参数;
- Boolean包装器对ture/false不区分大小写
例子:
float f=(new Double(100.2)).floatValue();
int i=(new Double("100.2").intValue());//XXXvalue():包装器类-基本类型
float f=Float.parseFloat("11.3f");
int d=Integer.parseInt("25");
//字符串-基本类型
Double d=Double.valueof("25.4");//Character包装器类没有这个方法
//字符串-包装器
//基本类型、包装器类型-字符串
String s1=Double.toString(3.14);//toString有静态方法也有实例方法
String s2=new Double(3.14).toString()
- 注意传参数时候,不如果参数是包装器类不能直接传一个基本类型此时不支持自动装箱拆箱
- 要用构造函数自动装箱
- Double a=1.2;// Double a=new Double(1.2); 自动装箱
- double b= a ; //自动拆箱
枚举
- enum枚举类型名字{枚举常量列表}
public class Ch_5_5_2 {
enum Season { 春季, 夏季, 秋季, 冬季; }
public static void main (String[] args) {
Season [] s= Season.values();
for (int i=0; i<s.length; i++)
{ switch(s[i]) {
case 春季: //case Season. 春季 编译错
System.out.println(“ 春困”); break;
case 夏季:
System.out.println(“ 夏打盹”); break;
case 秋季:
System.out.println(“ 秋乏”); break;
case 冬季:
System.out.println(“ 睡不够的冬三月”); break; }
}
}
}
数组的高级应用
- 要导入
import java.util.Arrays;
- 排序方法和binarySearch前提是数组不能为降序可以是无序或者升序
int i=Arrays.binarySearch(a1,3);
返回3这个元素出现第一次的下标Arrays.fill(c,4);
将数组c填充满4
字符串的高级应用
StringBuilder:线程不同步不安全但执行效率更高
StringBuffer
正则表达式
正则匹配步骤:
Pattern p=Pattern.compile(reg1);//reg1为模式串正则表达式
Matcher m=p.matcher(str);//str是待匹配串
m.group();m.find;m.start()
String[ ] split(String regex)
regex 是分隔串,也可以是正则表达式
作用:分割字符串,生成数组
String s="aa,bb,cc,dd";
String[] sa=s.split(","); //以 , 作为s的分隔串,提取字符串
for(String s1:sa)
System.out.println(s1);
String replaceFirst(String regex, String rp)
作用:用rp 替换regex 的首次出现String replaceAll(String regex, String rp)
作用:用rp 替换regex
随机数类
//要导入java.util.Random
Random r=new Random();
int x,i;
for(i=1;i<=10;i++){
x=r.nextInt(10)+1;//默认从0开始,要获取从1-10的就要+1
System.out.println(x);
}
面向对象程序设计
对象和对象引用的内存管理
- 栈(自动管理机制)
- 栈空间中的数据被系统自动管理即在函数调用时自动创建数据空间,在函数运行结束时自动释放数据空间
- 函数中定义的所有变量无论是基本类型还是引用类型均存储于栈空间
- 堆(手动管理机制)
- 实现按需分配或释放
- 所有对象均存储于堆空间
- 构造函数
- 与类同名,不用定义返回值类型,也没有return 语句,即使无返回值,也不能用void 声明
- 使用new 实例化对象时,系统根据给出的
参数表调用对应的构造函数。这就是构造函数重载
- 构造代码块
- 作用:对所有对象进行统一初始化
- 特点:
对象一建立就执行并且优于构造函数执行
class Person {
private String name;
private int age;
{ age=15; }//构造代码块
Person() {
System.out.println("A:name="+name+",age="+age);}
Person(String n) {
name=n;
System.out.println("B:name="+name+",age="+age);
}
}
对象的销毁
- 常量final
- 常量引用不可更改即指向某一对象不可更改,但是指向对象的内容可以修改
- 注意如果是string或者数组等引用一定在堆里面还要指向一个最终的数据
- a=b是a指向b指向的对象
- ==判别地址是否相同
- a.equals(b)判断内容是否相同
- 对象数组
- new String[10] 不是创建String 类对象(而是数组 对象 ),因此未调用String 的构造函数。
- sa[0] 是String 引用,不是String 对象,sa[0]指向的那个才是string对象
继承
- 对于超类的私有成员拥有但不能使用
- 构造对象时,会自动调用该类与超类的构造函
数,调用次序与派生次序相同 - 若超类有非private的
无参构造函数
,子类则自动调用
;若超类是有参构造函数
,则子类构造函数中必须显式调用超类的构造函数
,否则编译错
单例模式
class Student{
String name;
int age;
private Student(){}
public static Student creat(){//一定是static这样可以通过类名调用
Student a=new Student();//在方法中new
return a;
}
}
Student st=Student.creat();
System.out.println(st.age);
多态
- 意义:一名多义
- 重载(编译时决定静态绑定)同一个对象同一个方法的参数不同
- 狗1.嗅(主人气味 q); 狗1.嗅(骨头气味 q); ……
- 注意
重载传参
时,如果是基本类型数据可以强制转换大的可以转换成小的,但是小的不能转换成大的
- 重写(运行时决定 动态绑定)不同对象同一个行为的实质不同
- 狗 d=new 藏獒()/ new 哈士奇(); d.咬( );//重写咬这个方法不同的new的对象调用这个方法是不同的,虽然这个方法是extents父类的
保证同名同参同返回类型权限不能缩小
- 如果要禁止一个类派生子类那么将类设置
为final
- 禁止子类重写某个操作可以将操作设置为
final或者static
- 不希望被重写的方法可以:
final/static/private
//类没有private修饰
- 狗 d=new 藏獒()/ new 哈士奇(); d.咬( );//重写咬这个方法不同的new的对象调用这个方法是不同的,虽然这个方法是extents父类的
抽象类和接口
- 抽象类:在父子之间建立契约
- abstract不能修饰构造函数
- abstract不能和static final同时使用
- 子类必须要重写抽象类
- 接口:在任意类之间建立契约
最后
欢迎关注公众号:前程有光,领取一线大厂Java面试题总结+各知识点学习思维导+一份300页pdf文档的Java核心知识点总结!
java面试复习重点:类的管理及常用工具,教你抓住面试的重点!的更多相关文章
- Java 基础复习 -- Enum 类
一.枚举类基本语法 在 Java SE5 中添加了一个看似很小的特性,即 enum 关键字,它使得我们在需要群组并使用枚举类型集时,可以很方便的处理. 所有的 enum 都继承自 java.lang. ...
- java.util.concurrent.atomic 类包详解
java.util.concurrent包分成了三个部分,分别是java.util.concurrent.java.util.concurrent.atomic和java.util.concurren ...
- Java秋招面试复习大纲(二):Spring全家桶+MyBatis+MongDB+微服务
前言 对于那些想面试高级 Java 岗位的同学来说,除了算法属于比较「天方夜谭」的题目外,剩下针对实际工作的题目就属于真正的本事了,热门技术的细节和难点成为了面试时主要考察的内容. 这里说「天方夜谭」 ...
- Java基础复习笔记系列 五 常用类
Java基础复习笔记系列之 常用类 1.String类介绍. 首先看类所属的包:java.lang.String类. 再看它的构造方法: 2. String s1 = “hello”: String ...
- java面试复习
1.jvm虚拟机 https://www.cnblogs.com/dingyingsi/p/3760447.html https://blog.csdn.net/qq_41701956/article ...
- Java基础(面试复习整理)
基础知识和语法 Java语言初识 计算机语言发展 机器语言.汇编.C.C++.Java Java的诞生与发展 1995 JavaSE JavaME Android JavaEE 2006(大数据) H ...
- Java复习(二)类与对象的基本概念
2.1面向对象的程序设计方法概述 对象 程序中: 一切皆是对象 都具有标识,属性和行为 通过一个或多个变量来保存其状态 通过方法实现他的行为 类 将属性及行为相同或相似的对象归为一类 类可以看成是对象 ...
- java中带继承类的加载顺序详解及实战
一.背景: 在面试中,在java基础方面,类的加载顺序经常被问及,很多时候我们是搞不清楚到底类的加载顺序是怎么样的,那么今天我们就来看看带有继承的类的加载顺序到底是怎么一回事?在此记下也方便以后复习巩 ...
- 最近面试java后端开发的感受:如果就以平时项目经验来面试,通过估计很难——再论面试前的准备
在上周,我密集面试了若干位Java后端的候选人,工作经验在3到5年间.我的标准其实不复杂:第一能干活,第二Java基础要好,第三最好熟悉些分布式框架,我相信其它公司招初级开发时,应该也照着这个标准来面 ...
随机推荐
- Appium常用操作之「微信滑屏、触屏操作」
坚持原创输出,点击蓝字关注我吧 作者:清菡 博客:oschina.云+社区.知乎等各大平台都有. 目录 一.滑屏操作 1.访问之后,马上就滑屏可以吗? 2.连续实现 2 次滑屏 3.代码 二.模拟触屏 ...
- NOIP2018 填坑记
Oct,22ed,2018 DAY -18 又是颓废的一天呢 我好菜啊,一个圆方树弄了一整天(点双怎么那么毒瘤).(铁人两项怎么那么多点) Oct,23rd,2018 DAY -17 又双叒叕颓了一天 ...
- 【SpringCloud】02.微服务与SpringCloud
微服务的特点 一系列微小的服务共同组成 跑在自己的进程里 每个服务为独立的业务开发 独立部署 分布式管理 异构--不同的语言.不同类型的数据库 微服务架构的基础框架/组件 服务注册发现 服务网关(Se ...
- LR-demo
from __future__ import print_function # 导入相关python库 import os import numpy as np import pandas as ...
- 最全总结 | 聊聊 Python 办公自动化之 Excel(中)
1. 前言 上一篇文章中,我们聊到使用 xlrd.xlwt.xlutils 这一组合操作 Excel 的方法 最全总结 | 聊聊 Python 办公自动化之 Excel(上) 本篇文章将继续聊另外一 ...
- 万字长文,详解推荐系统领域经典模型FM因子分解机
在上一篇文章当中我们剖析了Facebook的著名论文GBDT+LR,虽然这篇paper在业内广受好评,但是毕竟GBDT已经是有些老旧的模型了.今天我们要介绍一个业内使用得更多的模型,它诞生于2010年 ...
- Oracle(第二天)
一.外键(foreign key):constraint , refenerces 例如:sno number(7) constraint fk_sno references student(sno) ...
- nginx&http 第三章 惊群
惊群:概念就不解释了. 直接说正题:惊群问题一般出现在那些web服务器上,Linux系统有个经典的accept惊群问题,这个问题现在已经在内核曾经得以解决,具体来讲就是当有新的连接进入到accept队 ...
- nagle 算法 tcp nodelay 以及 quick ack分析
后面详细分析 先上传 之前总结查看源码后的总结 Nagle算法的基本定义是任意时刻,最多只能有一个未被确认的小段.所谓"小段",指的是小于MSS尺寸的数据块,所谓"未被确 ...
- 查询OSD运行在哪些cpu上
前言 在看CPU相关的文章的时候,想起来之前有文章讨论是否要做CPU绑定,这个有说绑定的也有说不绑定的,然后就想到一个问题,有去观测这些OSD到底运行在哪些CPU上面么,有问题就好解决了,现在就是要查 ...