java概念与知识点总结--基础

本文全面总结了Java编程的基础知识点,包括基础语法、方法和数组、面向对象特性、最终类、抽象类与接口的区别,以及内部类、异常处理、集合框架、IO、字符串和类型信息等内容。深入探讨了Java的内存模型、访问控制符、构造器、多态、异常处理策略、集合API使用、字符串操作和类型信息的获取。通过对这些概念的理解和实践,有助于深化对Java编程的理解。
摘要由CSDN通过智能技术生成

java概念知识点总结

 


一、基础语法

  1. java内存模型和内存区域以及执行过程理解
  2. 特例: 基本类型(八大基本类型(boolean、char、byte、short、int、long、float、double)
    1) 因为对于一些小的、简单的变量,在new中创建对象往往不是很有效,于是设置了基本类型
    2) java中所有不带小数点的类型都默认是int类型,带小数点的默认类型为double类型long类型后面要加l(因为默认是int类型),float类型后面加F,double类型后加D(为了区别float和double)
    3) java中所有基本类型都有固定的内存大小,不随机器硬件架构的变化而变化
    4) 所有的数值类型都有正负号,所以不要去寻找无符号的数值类型
    5) boolean类型所占存储空间的大小没有明确指定,仅定义为能够取字面值true和false
  3. 引用类型(类、接口、数组)
  4. 垃圾回收器:因为在堆中创建的对象不能自动释放,所以java中有个垃圾回收器,用来监视用new创建的所有对象,并辨别那些不会再被引用的对。随后,释放这些对象的内存空间,以便供其他新的对象使用
  5. 基本成员默认值:若类的某个成员是基本数据类型,即使没有进行初始化,java也会确保它获得一个默认值。当变量作为类的成员使用时,java才确保给定其默认值。所以上述初始化不适用于局部变量(即并非某个类的字段)
  6. 方法的基本组成:名称、参数、返回值
  7. Java语言最大的特点:跨平台性(一次编译,多次执行,一般Window下开发,在Linux下面部署)
  8. 拆箱和装箱:装箱就是将基本类型转换为对象类型,拆箱就是将对象类型转换为基本类型。

二、方法和数组

  1. 访问控制符:
    1)private:这个成员只能在当前类的内部被访问
    2)default:可以被相同包下的其它类访问
    3)protected:可以被同一个包中中的其他类访问,也可以被不同包中的子类访问
    4)public:可以被所有类访问
    java不同访问修饰符总结(必看)
  2. 访问修饰符: 定义为static,则强调只有一份,定义为final,则说明是个常量 
    1)static关键字:
    通常来说,当创建类时,就是在描述那个类的对象的外观和行为。除非用new创建那个类的对象,否则,实际上并未获得任何对象。有两种情形是上述情况无法解决的,一种情况是,只想为某特定域分配单一存储空间,而不去考虑究竟要创建多少对象,甚至根本不创建任何对象。另一种情况是,希望某个方法不与包含它的类的任何对象关联在一起,也就是说,即使没有创建对象,也能够调用这个方法。通过static可以满足这两方面的需要。
    static方法就是没有this的方法,所以不能调用非静态方法和非静态成员
    static静态变量和非静态变量的区别:静态变量被所有的对象所共享,在内存中只有一个副本,它当且仅当在类初次加载时会被初始化。而非静态变量是对象所拥有的,在创建对象的时候被初始化,存在多个副本,各个对象拥有的副本互不影响。
    只有类才存在静态的变量 方法只能对静态变量的操作 不能在方法内试图定义静态变量 否则的话会抛出编译错误 静态变量的本意是为了让所有的对象共享这个变量,如果在方法里面定义静态变量的话就存在逻辑错误了,也达不到你想要目的. 因为在方法定义静态变量根本没有他的任何意义. 任何对象都有自己的方法,即使是静态方法,方法内的变量也是在方法调用时候才开始分配内存,所以想给成静态的在逻辑上存在问题
    2)final:
    对于基本类型,final使数值恒定不变;用于对象引用,final使引用恒定不变。一旦引用被初始化指向一个对象,就无法再把它改为指向另一个对象。
    final修饰方法表示该方法不能被重写和继承,可以关闭动态绑定
    当将某个类的整体定义为final时,就表明了你不打算继承该类,也不允许别人这么做,由于final类禁止继承,所以final类中所有的方法都隐式指定为是final,因为无法覆盖它们。
    final和private关键字:类中所有的private方法都隐式地指定为是final的。由于无法取用private方法,所以也就无法覆盖它。可以对private方法添加final修饰词,但这并不能给该方法增加任何额外的意义。
    3)如果一个域被定义为static final,则这个域就是一个静态常量。不能省略任何一个关键字,若是少了static,则该域变成了一个实例域,需要由类对象对其进行访问。若是省略了final,则该域变成了静态域,静态方法可以对其进行修改。
  3. 数组初始化·:
    1) int []a=new int[10];
    2) int []a={10,11,12};
    3) new int[]{10,11,12};
  4. 对于数组,new只是为其分配内存空间,并不创建对象

 
 
 
  1. interface U
  2. {
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值