Java重点知识点收集

什么是Java的序列化

就是将一个对象保存到一个文件,可以通过流的方式进行传输,可以将文件内容的读取,转化为一个对象,序列化是为了解决对象流在进行读写操作的时候的引发的问题,

对象流就是将对象进行流化,流化后的对象可以在网络之间进行传输,可以对流化后的对象进行读写操作。

一个".java"源文件中是否可以包括多个类?有什么限制

就是一个java文件里可以写多个类,但是只有一个public修饰的类,如下


1

2

3

4

5

6

7

public class A {

}

class B {

}

class C {

}

// 等等任意多个类,但是只有一个public class

final类有什么特点:类不能再被继承,常量不能再被改变

继承的时候父类的构造方法总是先被调用的

1、序列化是干什么的?
       简单说就是为了保存在内存中的各种对象的状态(也就是实例变量,不是方法),并且可以把保存的对象状态再读出来。虽然你可以用你自己的各种各样的方法来保 存object states,但是Java给你提供一种应该比你自己好的保存对象状态的机制,那就是序列化。

2、什么情况下需要序列化  
    a)当你想把的内存中的对象状态保存到一个文件中或者数据库中时候;
    b)当你想用套接字在网络上传送对象的时候;
    c)当你想通过RMI传输对象的时候;

打印前一天的 时间

public void date(){
Calendar calendar=Calendar.getInstance();
calendar.add(Calendar.DATE, -1);
System.out.println(calendar.getTime());
}

winson_张林说:
最大的区别在于内存。
静态方法在程序开始时生成内存,实例方法在程序运行中生成内存,
所以静态方法可以直接调用,实例方法要先成生实例,通过实例调用方法,静态速度很快,但是多了会占内存。
任何语言都是对内存和磁盘的操作,至于是否面向对象,只是软件层的问题,底层都是一样的,只是实现方法不同。
静态内存是连续的,因为是在程序开始时就生成了,而实例申请的是离散的空间,所以当然没有静态方法快,
而且静态内存是有限制的,太多了程序会启动不了。

抽象类和接口的区别:

接口可以被多重继承,implements抽象类只能被单一继承,extends,接口只有定义,抽象类只有定义和实现,接口的默认字段是public static final,抽象类是本包可见的。

当功能需要类积时候用抽象类,当功能不需要累积的时候用接口。

时间: 2024-10-04 09:52:46

Java重点知识点收集的相关文章

关于java重点知识点

JVM作为java运行的基础,很难相信对于JVM一点都不了解的人可以把java语言吃得很透.jvm不是唯一决定技术能力好坏的面试问题,但是可以佐证java开发能力的高低. 在JVM这个大类中,需要掌握的知识有:JVM内存模型和结构GC原理,性能调优调优:Thread Dump, 分析内存结构class 二进制字节码结构, class loader 体系 , class加载过程 , 实例创建过程方法执行过程:Java各个大版本更新提供的新特性(需要简单了解) 2. Java的运行(基础必备)这条可

java多线程知识点收集-总

1.线程与进程的关系 进程(Process):当一个程序进入内存开始运行时,就产生一个进程.进程是一个独立单元,它的资源由系统分配和调度. 线程(Thread):线程是进程的执行单元,线程在进程中是独立的.并发的执行流.当进程被初始化后,主线程(main)就被创建. 1)线程是进程的组成部分,一个进程可以拥有多个线程,一个线程必须有一个父进程. 2)线程拥有自己的堆栈.程序计数器以及局部变脸,但不拥有系统资源,它与父进程的其他线程共享共享父进程的全部资源. 3)线程的调度和管理由进程本身负责完成

java知识点、重点知识点

重点章节: 面对对象章节 重点知识点: Lambda表达式 数据:内存-->数据库 知识点一拦: 类.面向对象.对象.封装.继承.多态.消息.UML建模.数据类型(基本类型.引用类型).数据类型的转换(强制.自动) 运算符.数组.方法.变量.构造器.初始化块.内部类.包装类.常用工具类.接口.枚举类.正则表达式(字符串处理工具) .国际化.集合.泛型.异常处理

Java 面试知识点解析(二)——高并发编程篇

前言: 在遨游了一番 Java Web 的世界之后,发现了自己的一些缺失,所以就着一篇深度好文:知名互联网公司校招 Java 开发岗面试知识点解析 ,来好好的对 Java 知识点进行复习和学习一番,大部分内容参照自这一篇文章,有一些自己补充的,也算是重新学习一下 Java 吧. 前序文章链接: Java 面试知识点解析(一)--基础知识篇 (一)高并发编程基础知识 这里涉及到一些基础的概念,我重新捧起了一下<实战 Java 高并发程序设计>这一本书,感觉到心潮澎湃,这或许就是笔者叙述功底扎实的

Java核心知识点学习----多线程中的阻塞队列,ArrayBlockingQueue介绍

1.什么是阻塞队列? 所谓队列,遵循的是先进先出原则(FIFO),阻塞队列,即是数据共享时,A在写数据时,B想读同一数据,那么就将发生阻塞了. 看一下线程的四种状态,首先是新创建一个线程,然后,通过start方法启动线程--->线程变为可运行可执行状态,然后通过数据产生共享,线程产生互斥---->线程状态变为阻塞状态---->阻塞状态想打开的话可以调用notify方法. 这里Java5中提供了封装好的类,可以直接调用然后构造阻塞状态,以保证数据的原子性. 2.如何实现? 主要是实现Blo

Java核心知识点学习----多线程 倒计时记数器CountDownLatch和数据交换的Exchanger

本文将要介绍的内容都是Java5中的新特性,一个是倒计时记数器---CountDownLatch,另一个是用于线程间数据交换的Exchanger. 一.CountDownLatch 1.什么是CountDownLatch? 倒计时计数器,调用CountDownLatch对象的CountDown()方法就将计数器减一,当计数到达0时,则所有等待者或者全部等待者开始执行. 2.如何用? new CountDownLatch(1); 直接new,其构造函数必须传一个int类型的参数,参数的意思是: c

js基础知识点收集

js基础知识点收集 js常用基本类型 function show(x) { console.log(typeof(x)); // undefined console.log(typeof(10)); // number console.log(typeof('abc')); // string console.log(typeof(true)); // boolean console.log(typeof([])); // object console.log(typeof(function (

JAVA 年老代收集器 第10节

JAVA 年老代收集器 第10节 上一章我们讲了新生代的收集器,那么这一章我们要讲的就是关于老年代的一些收集器.老年代的存活的一般是大对象以及生命很顽强的对象,因此新生代的复制算法很明显不能适应该区域的特性,所以老年代采用的是“标记-清除-整理”算法(以前的章节有详细讨论过). SerilalOld收集器:该收集器是Serial收集器的老年代版,同样是一个单线程的收集器,优劣势和Serial收集器一样,这里就不多说了. Parallel Old收集器:在我们之前文章的代码例子中默认的年老代收集器

JAVA 年轻代收集器 第九节

JAVA 年轻代收集器  第九节 继续上一章所讲的,STW即GC时候的停顿时间,他会暂停我们程序中的所有线程.如果STW所用的时间长而且次数多的话,那么我们整个系统稳定性以及可用性将大大降低. 因此我们在必要的时候需要对虚拟机进行调优,那么调优的主要目标之一就是降低STW的时间,也就是减少Full GC的次数.那么这里我们从调优的角度来分析各个收集器的优势与不足. 首先从作用于年轻代的收集器开始(采用复制的收集算法): Serial收集器:一个单线程收集器,在进行回收的时候,必须暂停其他所有的工