java学习
java学习总结
jiankangzhu
这个作者很懒,什么都没留下…
展开
-
自动代码生成工具-codeGenerator
简单使用默认模板的自动化生成工具学习总结原创 2022-07-09 14:02:12 · 594 阅读 · 1 评论 -
java的接口和抽象类有什么不同
接口和抽象类是 Java 面向对象设计的两个基础机制。接口是对行为的抽象,它是抽象方法的集合,利用接口可以达到 API 定义和实现分离的目的。接口,不能实例化;不能包含任何非常量成员,任何 field 都是隐含着 public static final 的意义;同时,没有非静态方法实现,也就是说要么是抽象方法,要么是静态方法。Java 标准类库中,定义了非常多的接口,比如 java.util.List。抽象类是不能实例化的类,用 abstract 关键字修饰 class,其目的主要是代码重用。除了不原创 2020-05-10 14:07:20 · 350 阅读 · 0 评论 -
IO-必须掌握的技术
IO一直是软件开发中的核心部分之一,伴随着海量数据增长和分布式系统的发展,IO扩展能力越发重要。首先IO不仅指文件IO,还有网络IO。文件IO有很多种,基于不同的IO抽象模型和交互方式,可以区分为JAVA IO,NIO,NIO2(AIO)。首先,传统的 java.io 包,它基于流模型实现,提供了我们最熟知的一些 IO 功能,比如 File 抽象、输入输出流等。交互方式是同步、阻塞的方式,...原创 2020-04-29 23:22:28 · 461 阅读 · 0 评论 -
线程池使用原理
一 为什么要使用线程池呢?因为线程不可以重复的启动,否则会报IllegalThreadStateException运行时异常,重复启动线程会被认为是编程错误。而且创建和启动线程是会存在一些开销,这样就可以创建线程池就可以提升资源利用效率,简化线程管理。二 线程池的分类newCachedThreadPool()newFixedThreadPool(int nThreads)...原创 2020-04-12 13:42:00 · 117 阅读 · 0 评论 -
学习线程的总结
1 线程的概念进程是操作系统执行的一个任务,而线程是进程中的一个执行单元,线程是程序内部执行的顺序控制流。单线程是从一个程序的上面按照顺序执行,而线程可以改变这种执行顺序。2 线程的状态NEW 至今尚未启动的线程的状态 RUNNABLE 可运行线程的线程状态。处于可运行状态的某一线程正在 Java 虚拟...原创 2020-04-09 15:23:21 · 138 阅读 · 0 评论 -
HashMap的内部实现机制的奥妙
俗话说"工欲善其事,必先利其器",只有明白它的内部实现机制,我们才能更好的使用HashMap为我们服务。接下来让我们一步一步的解开它神秘的面纱。1 首先我们来看看它的内部结构它可以看作是数组(Node<>[] table)和链表结合而成的复合结构,数组被分为一个一个桶(bucket),通过哈希值决定了键值对在数组中的寻址,哈希值相同的键值对会形成链表,(这就是我们常说的...原创 2020-03-06 23:12:40 · 103 阅读 · 0 评论 -
Hashtable,HashMap,TreeMap之间的区别
Hashtable,HashMap,TreeMap都是一些常见的Map实现。都是以键值对的形式来存储和操作的容器类型。首先分析一下为什么Hashtable为什么不支持驼峰命名规则呢?因为Hashtable是JAVA早期提供的一个哈希表实现,这时候还不支持驼峰命名呢,等到Java实现支持驼峰命名的时候,像重写Hashtable的时候,但这个时候有很多第三方应用已经使用了Hashtable这个名字,要...原创 2020-03-05 23:03:37 · 1008 阅读 · 0 评论 -
Vector,ArrayList,LinkedList的区别
这三者都是实现集合框架中的List,也就是所谓的有序集合,因此功能比较近似,比如都是按照位置进行定位,添加,删除的操作,都提供迭代器遍历集合的内容。但是因为具体的设计区别,它们三个在行为,性能,线程安全方面又有着截然不同的表现。Vector是Java早期提供的线程安全的动态数组,如果不需要线程安全,不建议选择它。毕竟同步是有额外开销的。Vector内部是根据对象数组来保存数据的,并且根据需要自...原创 2020-03-04 20:58:36 · 75 阅读 · 0 评论 -
Java集合概述
Java集合类是特别有用的工具类,可用于存储数量不等的对象,并且可以实现常用的数据结构,如栈,队列等。Java集合大致分为Set,List,Map和Queue四种体系,其中Set代表无序,不可重复的集合,而List正好相反,List代表有序,可重复大的集合;Map则代表具有映射关系的集合;Java5又增加了Queue体系集合,代表一种队列集合的实现。集合类和数组不一样,数组元素既可以是基本类型...原创 2020-03-02 21:53:58 · 126 阅读 · 0 评论 -
在java反射中,Class.forName()和ClassLoader的区别
前言:最近在面试过程中有被问到,在Java反射中Class.forName()加载类和使用ClassLoader加载类的区别。当时没有想出来后来自己研究了一下就写下来记录一下。解释:在java中Class.forName()和ClassLoader都可以对类进行加载。ClassLoader就是遵循双亲委派模型最终调用启动类加载器的类加载器,实现的功能是“通过一个类的全限定名来获取描述此...转载 2020-02-29 12:03:47 · 216 阅读 · 0 评论 -
Int和Integer有什么区别
Java语言虽然号称一切都是对象,但是原始数据类型除外。Java有8个原始数据类型(primitive type),那就是boolean,int,short,long,char,float,double,byte。Integer是int的包装类,内部有一个private final int value,并且内部提供了基本操作,比如数学运算,int和字符串之间的转换。更重要的是从Java 5中引用了...原创 2020-02-25 07:51:17 · 140 阅读 · 0 评论 -
Java反射机制的奥妙
反射机制是Java语言提供的一种基础功能。我们在使用IDE编写源代码,之后编译成为对应的class文件,每个类被加载之后,系统都会为该类生成一个对应的class对象,通过这个class对象就可以访问到JVM中的这个类。什么叫反射呢?在程序运行时期,我们可以通过反射直接操作类和对象。比如获取某个类的定义,获取类的属性和方法,调用方法和构造器,甚至可以修改类的属性的访问权限。获取类对象的三个途径:...原创 2020-02-23 21:42:49 · 69 阅读 · 0 评论 -
解剖String,StringBuffer,StringBuilder三个字符串类型
字符串类型在每种编程语言中都是都是个特殊的存在,因为不管是体积还是数量,字符串都是大多数应用的重要组成部分。下面是一些典型的回答:String: String是java语言中非常基础和重要的类,提供了构造和管理字符串的各种基本逻辑。它是典型的Immutable类,被声明成final类,所有属性也都是被final修饰的,但是也正是由于String的不可变性,类似拼接,裁剪字符串类型等动作,都会产...原创 2020-02-21 00:05:19 · 169 阅读 · 0 评论 -
谈谈final,finally,finalize三者的不同
final,finally,finalize这三个单词除了长的差不多,其实真实含义却千差万别。final是个关键字,可以修饰类,方法,变量。修饰类代表这个class不可以被继承扩展,修饰方法说明这个方法不可以重写(override),修饰变量说明这个变量是只读的,不可以任意修改的。finally是java代码为保证重要代码必须要执行的一种机制。我们经常会用try-finally或try-c...原创 2020-02-18 14:08:01 · 132 阅读 · 0 评论 -
Exception和Error的难兄难弟
Exception和Error都是继承Throwable,在Java中只有Throwable类型的实例才可以被抛出(throw)或者捕获(catch),它是异常处理机制的基本组成类型。Error是在正常情况下,不大可能出现的情况,也就是不可预料的情况,绝大部分的Error都会导致程序(比如JVM自身)处于非正常的,不可恢复的状态。既然是非正常的状态,那么也就不需要捕获。Exceptio...原创 2020-02-17 15:36:13 · 131 阅读 · 0 评论 -
聊聊java平台哪些事
如果有人让你聊聊java平台,你会怎么说呢?java平台包括的东西太多了,有java语言,java类库,jvm,还有一些java常用到的框架......,简直说都说不过来,下面是我的一些见解,算是现阶段对java的一点总结,可以指导我向哪些方面前进。(1)java语言java语言是一门面向对象的编程语言,号称Write once, run anywhere,书写一次,到处运行。其实java...原创 2020-02-16 12:49:52 · 315 阅读 · 0 评论 -
System.out.println的前世今生
System.out.println()这个函数是很常用的打印函数,但是你在使用这个函数的时候知道它的背后运行原理吗?下面就让我们一起探究它的运行轨迹。首先使用Eclipse创建一个测试工程public class TestSystemOutPrintln { public static void main(String[] args) { System.out.prin...原创 2020-02-15 15:44:08 · 141 阅读 · 0 评论 -
SpringBoot项目从配置文件中获取值的方式
虽然Spring-boot项目一开始就自动配置了许多参数,如服务器的端口等,如果我们要修改这些参数的话,就要在配置文件中添加这些参数,然后从项目中获取这些参数的值了,下面就是怎么从配置文件中获取值的操作了。SpringBoot的全局配置文件名是固定的,有二个application.properties application.yml这两个文件的作用是修改SpringBoot自动配置的默...原创 2020-02-10 14:48:19 · 9815 阅读 · 0 评论 -
梳理Maven的前世今生
我在尚硅谷网站上学了maven的教程,所以写了这篇博客来进行总结一下,也证明了我学过maven,这只是简单的记录一下,如果有想详细学习的小伙伴可以自己去搜索一下尚硅谷官网或者给我留言,我发给你详细教程。一 为什么我们需要Maven这个构建工具呢?没有学习过Maven的,都会像我一样有过疑问,不用Maven,也可以正常的进行B/S架构的开发项目,从表述层,业务逻辑层,持久化层再到数据库...原创 2020-02-07 15:49:31 · 1245 阅读 · 0 评论 -
Eclipse中web项目可以显示Tomcat部署目录的插件-Browse Deployment Location
Browse Deployment Location输入Pivotal tc Server Integration for Eclipse,然后点击Go右击Tomcat v9.0 Server at localhost点击之后就会出现原创 2020-02-06 22:28:36 · 363 阅读 · 1 评论 -
Maven安装和手工创建maven项目
1 maven安装下载maven软件 http://maven.apache.org/download.cgi 检查JAVA_HOME 变量C:\Windows\system32>echo %JAVA_HOME%C:\Program Files\Java\jdk-12配置环境变量查看Maven版本信息C:\Windows\system32>mvn -v...原创 2020-02-06 22:06:13 · 255 阅读 · 0 评论 -
新版Eclipse安装插件的方式和使用说明
拷贝安装方式1、通过ECLIPSE_HOME\plugins安装在eclipse的主目录ECLIPSE_HOME, 比如在我的机器上安装的目录是:ECLIPSE_HOME有一个plugins的目录,这种方法的插件安装非常简单,只要将插件copy到这个目录下就可以 了。比如我有一个weblogic的插件(bea站点上可以下载),解压缩之后得到得到一个目录: 【com.bea.ecl...转载 2020-02-06 21:05:20 · 1423 阅读 · 0 评论