Java中一些零碎知识点集合(后续补充)

-----------------------------------关于封装-------------------------------------

封装原则
将不需要对外提供的内容隐藏起来。
把属性隐藏,提供公共方法对其进行访问。之所以对某些信息进行封装然后提供公共接口让外人进行访问,是因为可以对访问操作方式进行控制,来规范用户输入的数据,限制不合理信息,提高代码的健壮性。

-----------------------------------构造函数方法---------------------------------

功能  强制初始化
特点   无返回值    函数名与类名保持一致
           只能在new后面调用
            如果没有为一个类显式的定义一个构造函数,则系统分配一个默认的无参的、方法体为空的构造函数,如果已经为一个类显式的定义了一个构造函数,则系统不会分配一个默认的无参的、方法体为空的构造函数,此时再调用会出错。

-----------------------------------构造代码块-----------------------------------

作用:给对象进行初始化。
对象一建立就运行,而且优先于构造函数运行。
与构造函数的区别:
构造代码块儿是给所有的对象进行初始化,而构造函数是给对应的对象初始化。
构造代码块儿用于初始化所有对象共有的特点或功能进行初始化。

----------------------------------关键字this-------------------------------------

作用:用于区分局部变量和成员变量同名的情况。

this就代表本类的对象,到底代表表哪一个呢?
this代表它所在函数所属对象的引用。简单说,哪个对象在调用this所在的函数,this就代表哪个对象。

this的应用:当定义类中功能时,该函数内部要用到调用该函数的对象时,这是用this来表示这个对象。但凡本类功能内部使用到了本类对象,都用this表示。

this在构造函数中的调用:
用于构造函数之间的相互调用。此时this函数只能放在函数里面的第一行。

---------------------------------关键字static---------------------------------------

new   内存分配运算符,一元运算符,new后面是一个构造函数,通过new来访问后面类里包含了哪些内容,然后进行内存分配。起返回值为分配内存的物理首地址。
static   当被static修饰的类代码载入到java虚拟机里的时候,就立刻分配内存,并且只分配一次。
静态函数中不能直接引用(本类其他的)非静态成员,但可通过该类的一个对象间接引用。(因为在new对象的时候new对非静态成员分配了内存)

--------------------------------关键字final------------------------------------------

final:修饰符。
1,可以修饰类,函数,变量。
2,被final修饰的类不可以被继承,目的是为避免被继承,被子类复写,完善继承带来的封装漏洞。
3,被final修饰的方法不能被复写。
4,被final修饰的变量只能复制一次,既可以修饰成员变量,又可以修饰局部变量。当在描述事物时,一些数据的出现值是固定的,那么这时为了增强阅读性,都给这些值起个名字,方便于阅读。而这个值不需要改变,所以用final修饰。作为常量:常量的书写规范所有字母都大写,如果由多个单词组成,单词间通过_连接。这个时候,往往会加上static使之成为共享数据(此时可以直接拿类名调用)

例:
class Demo
{
   final double PI=3.14;
   final int MY_AGE=18;
}

时间: 2024-11-08 22:26:01

Java中一些零碎知识点集合(后续补充)的相关文章

Java中的容器(集合)之HashMap源码解析

1.HashMap源码解析(JDK8) 基础原理: 对比上一篇<Java中的容器(集合)之ArrayList源码解析>而言,本篇只解析HashMap常用的核心方法的源码. HashMap是一个以键值对存储的容器. hashMap底层实现为数组+链表+红黑树(链表超过8时转为红黑树,JDK7为数组+链表). HashMap会根据key的hashCode得到对应的hash值,再去数组中找寻对应的数组位置(下标). hash方法如下: static final int hash(Object key

java中的数据结构(集合|容器)

对java中的数据结构做一个小小的个人总结,虽然还没有到研究透彻jdk源码的地步.首先.java中为何需要集合的出现?什么需求导致.我想对于面向对象来说,对象适用于描述任何事物,所以为了方便对于对象的操作.存储就出现了集合,集合应该是存储对象最常用的一种方式了,相对于数组更灵活,可变长度.同时集合也只能存储对象不能使基本数据类型. 集合框架分为两个派系Collection和Map而每一种集合类型都是基于特定的数据结构,Collection接口继承了Iterable接口所以可以使用Iterable

java中的小知识点

1.数据类型的相关知识点 1.1.java内置封装类的转换 java中内置的封装类Byte.Integer.Float.Double和Long都可以转换成double类型的数值:因为这些封装好的类中都有doubleValue()的方法,进而调用此方法就可以转换成Double类型的数值啦:[各个类声明的引用对象,都会有相应的xxxValue()方法,转换成自己需要的数据类型] 比如: package fdx.test.ShuJuKind; public class TestOne { public

面试中关于Java中涉及到知识点(转)

本篇文章会对面试中常遇到的Java技术点进行全面深入的总结,帮助我们在面试中更加得心应手,不参加面试的同学也能够借此机会梳理一下自己的知识体系,进行查漏补缺. 1. Java中的原始数据类型都有哪些,它们的大小及对应的封装类是什么? (1)boolean boolean数据类型非true即false.这个数据类型表示1 bit的信息,但是它的大小并没有精确定义. <Java虚拟机规范>中如是说:“虽然定义了boolean这种数据类型,但是只对它提供了非常有限的支持.在Java虚拟机中没有任何供

java中线程安全的集合对象

Vector与ArrayList Vector属于线程安全级别的,但是大多数情况下不使用Vector,因为线程安全需要更大的系统开销. HashTable与HashMap Hashtable 中的方法是同步的,而HashMap中的方法在缺省情况下是非同步的.在多线程并发的环境下,可以直接使用Hashtable,但是要使用HashMap的话就要自己增加同步处理了. StringBuilder与StringBuffer StringBuilder和StringBuffer的方法是一模一样,就前者是多

Java中的容器(集合)

1.Java常用容器:List,Set,Map List: 继承了Collection接口(public interface List<E> extends Collection<E> ),有序且允许出现重复值. Set: 继承了Collection接口(public interface Set<E> extends Collection<E> ),无序且不允许出现重复值. Map: 是一个使用键值对存储的容器(public interface Map<

java中有关数组或集合的起始位详解

在jdbc连接数据库时,起始位都是从1开始的 例如:Class.forName("com.mysql.jdbc.Driver"); conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/mybatis", "root", "ms"); String sql="SELECT * FROM users WHERE NAME=?"; pstm=

Java中的数值和集合

数组array和集合的区别: (1) 数值是大小固定的,同一数组只能存放一样的数据. (2) java集合可以存放不固定的一组数据 (3) 若程序事不知道究竟需要多少对象,需要在空间不足时自动扩增容量,则需要使用容器类库,array不适用 数组转换为集合: Arrays.asList(数组) 示例: int[] arr = {1,3,4,6,6}; Arrays.asList(arr); for(int i=0;i<arr.length;i++){ System.out.println(arr[

JAVA中几种常见集合的使用实例

Java.util.ArrayList(类): *;import java.util.*;public class CollectionTest{//List是一个能包含重复元素的已排序的Collection,有时list也称为序列,List第一个元素的下标为0      public String colors[]={"red","white","blue"};//定义一个字符数组     //构造函数     public Collectio