
Java基础
zl_StepByStep
人是不能太闲的,闲久了,努力一下就以为在拼命!
展开
-
(1)初步学习Java时一些问题的解答
1.DOS下,dir和cd分别表示什么?dir:查看某个目录下的子目录和文件;cd:改变当前目录。2.为什么采用Java_HOME的方式配置环境变量较好?便于Java_HOME 路径的重用,避免JDK安装路径变化而修改多个环境变量。3.public class 的类名必须和文件名保持一致吗?public class 的类名必须和文件名保持一致。4.system.out.print("hi");可以...原创 2018-03-18 11:35:53 · 679 阅读 · 0 评论 -
(11)Java的反射机制(缘由)
在java中,只要给定类的名字, 那么就可以通过反射机制来获得类的所有信息。即:类中有什么信息,利用反射机制就能可以获得什么信息,不过前提是得知道类的名字。在深入理解反射机制之前,应该先知道以下这些概念:Java虚拟机和垃圾回收机制、Java程序运行过程、类的加载过程以及静态加载和动态加载。目录一、Java虚拟机和垃圾回收机制二、程序的运行过程三、类的加载3.1类加...原创 2018-04-21 16:39:27 · 669 阅读 · 0 评论 -
(11)Java的反射机制(实例)
目录1.通过一个对象获得完整的包名和类名2.实例化Class类对象3.通过Class实例化其他类的对象4.通过Class调用其他类中的构造函数 (也可以通过这种方式用Class创建其他类的对象)5.返回一个类实现的接口6.取得其他类中的父类7.获得其他类中的全部构造函数8.取得其他类的全部属性,将这些整理在一起,也就是通过class取得一个类的全部框架9....原创 2018-04-21 21:37:30 · 717 阅读 · 0 评论 -
Java8新特性之lambda表达式
在了解lambda表达式之前,必须先了解函数式编程、函数式接口和default方法。在Java8出来之前,别的编程语言中已经有了函数式编程这种概念,只不过后来没落了,不过在最近几年又火起来了。在Java8中大力提倡我们使用函数式编程,并且更新了一些类(java.utl.function),让我们根据这些类来编程。目录一、有关函数式编程、函数式接口和default方法的介绍...原创 2018-09-16 17:02:12 · 596 阅读 · 0 评论 -
Java8新特性之日期处理
在Java8之前,操作日期的话不是很方便,有很多地方需要自己去实现,Java8中在java.time包里新增了很多处理日期的类,通过这些类可以使开发者更加便捷的操作日期,这些类都是final修饰的,且都是线程安全的。下面介绍几个常用类:LocalDate类只能处理日期public class TestLocalDate { public static void ...原创 2018-09-17 23:19:42 · 330 阅读 · 0 评论 -
定时任务—Spring中集成Quartz
Java的定时任务实现有三种,一种是使用JDK自带的Timer那个类来实现,另一种是使用quartz框架来实现,最后一种是在项目使用Spring框架的情况下用Spring框架来实现。JDK自带的类是单线程的,而且只能定义特定时间去执行任务,而不能指定任务执行的频率,所以一般用的较少,只有处理一些简单的程序才会用到。而quartz是一个轻量级的框架,支持多线程,支持定义频率,所以非常方便。我...原创 2019-01-17 21:56:27 · 563 阅读 · 0 评论 -
Java内存模型及内存溢出相关问题
java内存模型是jvm的基础,而jvm是java的基础,所以弄明白java的内存模型是至关重要的!本篇设计到了Java内存模型(堆、栈等)、常见的内存溢出(OOM、StackOutflowError等)。目录一、Java内存模型相关问题JDK1.6、1.7、1.8的jvm(逻辑上的)内存结构栈和堆的区别是什么?JDK1.8为什么要去除方法区(永久区)?二、常见的内...原创 2019-02-17 01:06:07 · 660 阅读 · 0 评论 -
Java垃圾回收
垃圾回收主要回收的是堆内存,基于分代的思想,分为新生代和老年代。本篇主要涉及到JVM中对象分配、对象晋级、对象的生死判定、对象回收、垃圾回收器以及一些垃圾回收的面试题。目录垃圾回收的一些基本概念■JVM中堆内存分配■ 对象分配■ 对象晋级■ 对象生死判定对象回收方法论——分代收集■ 新生代——标记清除法■ 新生代——复制算法■ 老年代——标记整理算法...原创 2019-03-05 21:10:24 · 579 阅读 · 0 评论 -
Java高并发编程 (马士兵老师视频)笔记(一)同步器
本篇主要总结同步器的相关例子:包括synchronized、volatile、原子变量类(AtomicXxx)、CountDownLatch、ReentrantLock和ThreadLocal。还涉及到wait和notify/notifyAll。回忆关于线程的几个基本知识点:◆ 线程的概念(程序中不同的执行路径可以放到不同的CPU中同步运行);◆ 如何启动一个线程(继承Thread类 ...原创 2019-03-24 23:20:21 · 2413 阅读 · 0 评论 -
Java高并发编程 (马士兵老师视频)笔记(二)并发容器
本篇主要总结了:线程安全的单例模式和并发容器。其中并发容器包含:ConcurrentHashMap、ConcurrentSkipListMap、CopyOnWriteArrayList和队列相关的内部加锁的并发队列ConcurrentLinkedQueue 以及阻塞队列BlockingQueue (LinkedBlockingQueue、ArrayBlockingQueue 、DelayQu...原创 2019-03-27 17:25:34 · 3039 阅读 · 7 评论 -
(10)Java中内存示意图(其二)
1、对象转型(casting)在这里复习下这个概念: (1)一个基类的引用类型变量可以指向其子类的对象。例:Animal a = new Cat(); (2)一个基类的引用不可以访问其子类对象新增加的成员(属性和方法)。比如:Cat继承Animal后增加furColor属性,Animal对象是不能访问该属性的。 (3)可以使用引用变量 instanceof 类名 来判断该引用型变...原创 2018-04-10 19:57:58 · 623 阅读 · 0 评论 -
(10)Java中内存示意图(其一)
程序是静态的,存在于硬盘上,只有Load到内存中经过操作系统相关代码调用后分配内存开始运行,Java代码中又把内存分为4块儿,如下图:heap堆、stack栈、data segment、code segment。八大基本类型与引用类型在内存中的区别: 八大基本类型在内存中只有一块儿内存 而引用类型占两块儿内存类和对象在内存中的区别: 类是静态的概念,存在于代码区 对象是ne...原创 2018-04-10 16:33:57 · 1317 阅读 · 0 评论 -
(2)Java中控制结构
1.三种控制结构是什么?顺序结果、选择结构、循环结构2.Math.random()表示什么?如何获取15~20之间的随机数?产生一个0~1之间的随机数,包含0但不包含1(int)(Math.random()*6)+153.switch语句中,表达式结果需要什么类型,其功能能完全被多重if代替吗?如果是,为什么还需要switch结构?switch表达式中的结果可以是byte、char、short、i...原创 2018-03-18 16:46:01 · 537 阅读 · 0 评论 -
(3)数组
1.数组的类型可以是任意类型吗?数组元素有序吗?数组的类型可以是任意类型,不过数组中的元素类型必须是相同的。数组的元素是有序的,按照索引的顺序。2.数组的元素可变不?数组的长度属于哪个属性?数组下标范围是?数组一旦声明就不能更改,长度属性为length,范围是 0 ~ 数组名.length-1。3.数组是引用类型,数组是对象,对吗?对,数组是引用数据类型,数组也是对象。4.数组中的元素就像对象的成...原创 2018-03-18 18:41:57 · 733 阅读 · 0 评论 -
(4)面向对象(其一)
1.简述面向对象与面向过程的联系与区别。两者都是软件开发思想,先有的面向过程,后有的面向对象。在大型项目中,针对面向过程的不足推出了面向对象的开发思想。区别:(1)编程思路不同:面向过程以实现功能的函数开发为主;面向对象要首先抽象出类、属性及其方法,然后通过实例化类、执行方法来完成功能。(2)封装性:都具有封装性,但面向过程是封装的功能;面向对象封装的是数据和功能。(3)面向对象具有继承性和多态性...原创 2018-03-18 21:49:24 · 620 阅读 · 0 评论 -
(7)Java中的容器
1.Java中容器可以说成是“容纳其他对象的对象”吗?对。容器自己也是对象,同时可以装其它对象的引用。2.Collection/Set/List的联系与区别?(1)Collection是Java集合顶级接口。(2)List接口和Set接口是Collections接口的两个子接口。(3)List接口存储一组不唯一,有序(插入顺序)的对象; Set接口存储一组唯一,无序的对象。3.Set...原创 2018-03-22 21:12:36 · 454 阅读 · 0 评论 -
(4)面向对象(其二)
1.面向对象的封装,追求的是“低内聚,高耦合”,解释下内聚和耦合?内聚:程序内的各个模块之间的关系紧密程度。耦合:外部程序(子程序)之间的关系紧密程度。2.封装的几个关键字:private、default、protected、public的含义?privatedefaultprotectedpublic私有的,只允许本类访问无修饰词,默认的,同一个包内可以访问受保护的,子类及本包的类都可以访问公开...原创 2018-03-19 18:06:50 · 853 阅读 · 2 评论 -
(5)异常处理机制
1.Java中,处理异常的两大步是?捕获异常、声明异常2.如果catch两个异常,一个是父类,一个是子类。这两个异常的catch顺序如何确定?子类异常在前,父类异常在后。3.finally里面一般放什么代码?无论是否发生异常,finally里的代码一定会执行,所以把必须要执行的语句放在finally里面。比如:数据连接的关闭、IO流的关闭、socket连接的关闭等物理连接的关闭。4.Error与E...原创 2018-03-19 18:47:11 · 460 阅读 · 0 评论 -
(6)Java中的常用类
1.为什么需要包装类?包装类的作用是? 因为Java是面向对象的,但Java中的基本数据类型不是面向对象的,在实际的使用过程中经常需要将基本数据转换成对象,便于操作。比如在集合中存储数据时,只能存储对象。作用:①作为和基本数据对应的类类型,方便涉及到对象的操作; ②包含每种基本数据类型相关的属性以及相关的操作方法。2.将字符串“123”转换成基本类型数字的方式有哪些?通过Inte...原创 2018-03-21 21:31:50 · 439 阅读 · 0 评论 -
(8)IO流技术
1.IO是什么意思?data source是什么意思?IO:Input Outputdata source:数据流。 2.字节流和字符流有什么区别?输入流输出流有什么区别? 字节流和字符流是流的一种划分,按照处理流的数据单位进行的划分。两类都分为输入和输出操作。在字节流中输出数据主要是使用OutputStream完成,输入是使用InputStream;在字符流中输出主要是...原创 2018-03-24 21:36:32 · 833 阅读 · 0 评论 -
(9)Java多线程
我发现这篇关于线程的文章写的很好,在此强烈推见点击打开链接了解线程之前要了解以下三点:1、线程是进程的一个实体,线程本身是不会独立存在的!2、进程是代码在数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,线程则是进程的一个执行路径,一个进程至少有一个线程,一个进程中的多个线程是共享进程资源的。3、操作系统在分配资源时,把资源分配给了进程,但是CPU资源比较特殊,它是分配...原创 2018-03-25 17:40:52 · 457 阅读 · 0 评论 -
Java中的NIO、BIO、AIO
BIO:同步阻塞 就是我们常说的I/O,InputStream/OutputStream、Writer/Reader。标准I/O是基于字节流和字符流进行操作。 一个连接对应一个线程。当有客户端连接请求时,服务端需要启动一个线程处理,如果这个连接不做任何处理,会造成不必要的线程开销,可以通过线程池机制改善,从而实现异步I/O。NIO:同步非阻塞 JDK1.4添加的特...原创 2019-04-09 20:38:31 · 285 阅读 · 0 评论