java基础的查缺补漏

打好基础,加油加油加油!


前言

为了方便自己回顾知识和弥补学习漏洞,特此开个帖子记录一下


day1(6.16test,7.2)

  1. HashMap能够保证其中元素的顺序?
    解释:hashmap是无序的

  2. BufferedReader 的readLine()是用于字符流进行按行读取的
    该方法可能抛出IOException异常,调用该方法时通常应将它放在try块中,并通过catch块处理异常;当读到流的末尾,该方法返回的结果为null

map能存进多个值,但不可以存取重复值,只会存入第二个

import java.util.*;
public class TestMap{
    public static void main(String[] args){
        Map map=new HashMap( );
        map.put(“first","football");
        map.put(“first","basketball");
        System.out.print(map.get(“first"));
        //输出basketball
     }
}

list:有序,可重复,有索引
set:无序,不重复,无索引
map:无序,不重复,无索引

4.整型数据类型中,需要内存空间最少的是byte类型

5.创建对象时必须先声明对象,为对象分配内存空间,对对象初始化,然后才能使用对象

6.重载与重写
重载:一个类中定义多个想同名的方法

  • 要求:
    ①方法名同,但形参列表(个数、类型、顺序)不同;
    ②与返回值类型、访问修饰符无关
  • 误区更正
//两个方法没有区别;只是参数名不同,不能构成重载
public void m(int a){}
public void m(int b){}

重写

  • 方法名同,形参同,返回值同;访问修饰符可同,或更宽泛
  • 重写父类方法后,调用时优先执行子类重写后的方法

数组在堆区,堆区有默认值0

public class Person{ 
    static int arr[] = new int[5];//数组在堆区,堆区有默认值0
    public static void main(String a[]) { 
   		 System.out.println(arr[0]);
   		 //输出0
    } 
}
Boolean b=null; 
//这是个包装数据类型,声明出来的是类,因此可以为null

包装类:基本数据类型所对应的引用数据类型

  • 默认值为null
  • 可以调用方法
  • 声明的数需要±*/则用基本数据类型;当需要存储时,则用包装类

9.static
静态属性(类属性)、静态方法(类方法)

  • 在全类中只有一个,不因创建多个对象而产生多份
  • 不必创建对象,可直接通过类名访问
  • 静态方法在方法区,所有对象共享一份(要少用,慎用,因空间有限)
class ClassDemo {
     public static int sum=1; //声明静态变量
    //public  int sum=1; //demo1.sum 输出6
     public ClassDemo() {
   		  sum = sum + 5; 
     }
}
public class ClassDemoTest{
     public static void main(String args[]) {
         ClassDemo demo1=new ClassDemo(); //1+5
         ClassDemo demo2=new ClassDemo();//6+5
         System.out.println(demo1.sum);//此时sum为11
     }
}

10.泛型的优点
不用向下强制类型转换

11.java运行机制

javac hello.java #先编译
java hello #(默认已加class) #后执行

jdk包括jre
jdk:开发者工具包
jre:java运行时环境
javac:编译器
java:执行器

12.迭代器的next()方法将返回集合中的/下一个元素.

13.使用流式套接字编程时,为了向对方发送数据,则需要使用getOutputStream()

14.== 与equals的区别
==比较堆区地址;equals比较内容,但需要重写

15.两个对象的 hashCode() 相同,但 equals() 不一定为true.
不一定一样,只算内容,不算顺序
hashcode()即哈希值(根据内容的具体值算出来的)

map1.put(23,43);
map2.put(43,23);

16.构造器不能被重写

17.try{}里有一个return语句,那么紧跟在这个try后的finally{}里的code会被执行,先执行finally,再执行return块

public static int add(){
try{
return 1;
}finally{
return 2;
}
}//最后结果返回2

day2(7.3)

学习java树的第一天,复习一下java基础吧!整理一下自己的知识漏洞!~

java运行机制

1.ClassLoader 是 JVM 实现的一部分
解释:ClassLoader从上到下bootstrap,extension,system,custom,当需要加载类时,从下往上询问,父加载器可以加载则父加载器加载,不能则由子加载器加载(双亲委派机制)

2.Java 虚拟机逐行读取并执行Java代码
解释:JVM无法直接读取java代码,需要先编译后解码再读取
java虚拟机就是JVM,它只能在不同平台上运行相对应的字节码文件,也就是.class文件,并不能直接运行java代码

3.包含关系:JDK(java开发工具包)>JRE(java运行时环境)>JVM(java虚拟机), 其中, JDK = JRE + Java编译工具,JRE = JVM + Java核心类库

java关键字

下面代码中哪个不是Java的关键字或保留字:
static main  public int
import java.io.*;
public class App {
    public static void main(String[] args) {
        int main = 1024;
        System.out.println("Hello World");
    }
}

main不是关键字
解释:main不是关键字,但main作为方法名时会被编译器识别为程序的主入口,算是一个系统“保留方法名“吧,jvm会从main函数开始执行语句。

变量定义

正确定义变量
var x=3.14;//是对的,适用于jdk10
float x;
错误定义变量:
x=new Int(4);

解释:在jdk10中,var x = 3.14 是支持的。在jdk10中,var表示模糊定义。
Java中,并没有Int这个类型,只有基本类型int和包装类型Integer,并且int也是不能够通过new出来的。只有引用类型才能够通过new关键字创建。

String x ="1111";//对
string x="222";//错

解释:String 引用类型 java 区分大小写,没有string类型

常量定义

final var x=100;//对
const int value =100;//错

解释:final:java中声明常量的
const是Java的一个保留关键字,没有实际意义,但是不能用于做变量名。
var:自适应变量,会根据右边的类型自适应类型

7.4

IndexOutFoundException:索引越界异常
FileNotFound:文件找不到
NullPointerException:空指针异常
IO:读写文件异常

接口与抽象类区别:

3.break、continue、return的作用
4.short s1=1;s1=s1+1;会报错

数组和String都有length():

7.6

定义一个函数,查找给定值x在数组 array 中的索引位置,如果没有找到,返回-1 :
public int findln(int[] array,int x){
for(int i=0;i<array.length;i++){
if(array[i]==x){
return i;
}
}
return -1;
}
//错误答案:?为什么错
public int findln(int[] array,int x){
for(int i=0;i<array.length;i++){
if(array[i]==x){
return i;
}else{
return -1;
}
}
}

总结

以上就是自己的一些查缺补漏啦,打好基础,坚持记录,相信总有一天会有收获的!

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值