JDK

资深架构师谈论Java 枚举

拜拜、爱过 提交于 2020-12-20 09:01:17
概念 enum 的全称为 enumeration, 是 JDK 1.5 中引入的新特性。 在Java中,被 enum 关键字修饰的类型就是枚举类型。形式如下: enum Color { RED, GREEN, BLUE } 如果枚举不添加任何方法,枚举值默认为从0开始的有序数值。以 Color 枚举类型举例,它的枚举常量依次为 RED:0,GREEN:1,BLUE:2。 枚举的好处 :可以将常量组织起来,统一进行管理。 枚举的典型应用场景 :错误码、状态机等。 枚举类型的本质 尽管 enum 看起来像是一种新的数据类型,事实上,enum是一种受限制的类,并且具有自己的方法。 创建enum时,编译器会为你生成一个相关的类,这个类继承自 java.lang.Enum。 java.lang.Enum类声明 public abstract class Enum<E extends Enum<E>> implements Comparable<E>, Serializable { ... } 枚举的方法 在enum中,提供了一些基本方法: values() :返回 enum 实例的数组,而且该数组中的元素严格保持在 enum 中声明时的顺序。 name() :返回实例名。 ordinal() :返回实例声明时的次序,从0开始。 getDeclaringClass() :返回实例所属的

JDK下载与安装、 Eclipse下载与使用、 Tomcat下载与使用、 MySQL安装与使用

安稳与你 提交于 2020-12-20 07:10:18
一、JDK下载与安装: 1.进入oracle官网: https://www.oracle.com/cn/sun/ 2.在首页的菜单-->开发人员-->Java 3.找到SE的下载,如图: 4.下载你想要下载的版本: 5.我下载的是1.8版本的jdk: 6.下载完成点击安装,安装到你想安装的位置(位置会使用,要记住(一般不能包含中文路径)),安装完成,配置环境:   控制面板-->系统和安全-->系统-->高级系统设置-->高级-->环境变量-->系统变量-->寻找 Path 变量-->编辑在变量值最后输入 %JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;(注意原来Path的变量值末尾有没有;号,如果没有,先输入;号再输入上面的代码)   同样:系统变量-->新建 CLASSPATH 变量-->变量值填写 .;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar(注意最前面有一点) 7.验证是否配置成功:  打开命令窗口输入jdk -version 二、Eclipse的下载与使用: 1.进入官网: https://www.eclipse.org/ 2.点击下载 3.安装: 一路安装完成 4.使用: eclipse可以安装很多的插件,也可以安装中文插件等; 要进行web开发就必须下载web开发的相关插件: 打开eclipse

Java基础知识(三)——面向对象(上)

折月煮酒 提交于 2020-12-20 03:06:45
类和对象 对一个类定义而言,可以包含三种最常见的成员:构造器、成员变量、方法,类里各成员之间的定义顺序没有任何影响,可以互相调用,但是static修饰的成员不能访问没有static修饰的成员。 static修饰的方法和成员变量,即可通过类来调用,也可通过实例来调用。没有使用static修饰的方法或成员变量只能通过实例来调用。 static修饰的成员表明他属于这个类本身,而不是属于该类的单个实例,因此通常把static修饰的成员变量称为类变量(静态变量)、类方法(静态方法)。 static 真正的作用是区分成员变量、方法、内部类、初始化块这四种成员到底属于类本身还是属于实例(相当于一个标志)。 成员变量用于定义该类或该类实例所包含的状态数据,方法则用于定义该类或该类实例的行为特征或者功能实现。构造器用于构造该类的实例,Java语言通过new关键字来调用构造器,从而返回该类的实例。 构造器是一个类创造对象的根本途径,如果一个类没有构造器,这个类通常无法创建实例。因此如果程序员没有为一个类编写构造器,则Java语言会为该类提供一个默认的构造器,反之,则不提供。 成员变量的语法格式: [修饰符] 类型 成员变量名 [= 默认值]; 修饰符:public、protected、private、static、final,可以与static、final组合起来修饰成员变量。

JDK的下载及安装与Eclipse的下载及使用

邮差的信 提交于 2020-12-19 15:36:48
一、JDK的 下载及安装 搜索 "请到java官网下载jdk安装"。 在打开的界面点 "JDK download"。 点击 "Accept License Agreement",然后在右下角选择合适自己的系统的JDK版本 , 需要注意的是下载要先接受协议,下载 x64的JDK ( 因为本机是 64位) 。 下载完成后,在磁盘中会发现一个名称为 jdk-8u92-windows-x64.exe 的可执行文件。双击该文件,打开 JDK 的欢迎界面 。 单击 “下一步”按钮,打开定制安装对话框。选择安装的 JDK 组件 。 单击 “更改”按钮,更改 JDK 的安装路径 , 更改完成之后,单击 “下一步”按钮,打开安装进度界面 。 选择 JDK 的安装路径 。 单击 “下一步”按钮,安装 JDK 。当 JDK 安装完成之后,将打开 JDK 安装完成界面 即可。 二、Eclipse的下载与使用 1、 首先在电脑的浏览器中输入 “eclipse官网”。然后在网页中点击进入eclipse的官方下载网站。 2、 然后再点击页面右边的 “download”。在弹出的页面下面点击“download packages”。 3、 在下面找到 “eclipse IDE for java developers”的选项。在选项右边有一个“32bit”和“64bit”。选择64bit。 4、 再点击

java中的各种锁

风格不统一 提交于 2020-12-19 15:11:20
在读很多并发文章中,会提及各种各样锁如公平锁,乐观锁等等,这篇文章介绍各种锁的分类。 公平锁/非公平锁 可重入锁 独享锁/共享锁 互斥锁/读写锁 乐观锁/悲观锁 分段锁 偏向锁/轻量级锁/重量级锁 自旋锁 上面是很多锁的名词,这些分类并不是全是指锁的状态,有的指锁的特性,有的指锁的设计,下面总结的内容是对每个锁的名词进行一定的解释。 公平锁/非公平锁 公平锁是指多个线程按照申请锁的顺序来获取锁。 非公平锁是指多个线程获取锁的顺序并不是按照申请锁的顺序,有可能后申请的线程比先申请的线程优先获取锁。 有可能,会造成优先级反转或者饥饿现象。 对于Java ReentrantLock 而言,通过构造函数指定该锁是否是公平锁,默认是非公平锁。非公平锁的优点在于吞吐量比公平锁大。 对于 Synchronized 而言,也是一种非公平锁。由于其并不像 ReentrantLock 是通过AQS的来实现线程调度,所以并没有任何办法使其变成公平锁。 可重入锁 可重入锁又名递归锁,是指在同一个线程在外层方法获取锁的时候,在进入内层方法会自动获取锁 。说的有点抽象,下面会有一个代码的示例。 对于Java ReentrantLock 而言, 他的名字就可以看出是一个可重入锁,其名字是 Re entrant Lock 重新进入锁。 对于 Synchronized 而言,也是一个可重入锁

获奖感想与Java阶段性学习总结

妖精的绣舞 提交于 2020-12-19 13:16:31
获奖感想 其实我早就知道有小黄衫这个东西,而且它就在我的目标清单里,不过没想到娄老师发的这么早。我想小黄衫代表着的是老师对我这一阶段来学习成果和努力的肯定,虽然Java学习中付出很多时间精力,现在也值了。另一方面,小黄衫也是一种压力,既然老师认为小黄衫获得者更优秀,那么我们就应该以更高的标准来要求自己。有同学开玩笑说拿到小黄衫期末就100了,我想的是不是因为有小黄衫才100,而是需要我们这一阶段的努力配得上100分才能获得小黄衫。所以说小黄衫不是一种保证,而是一种证明:哎呦,不错哟。同时也是娄老师在说:我已经注意到你了哦。那么就更不能有一丝松懈了,说不定会有什么小黄衫回收机制呢(=ω= ||) 阶段性总结 我也不是什么厉害的人物,让我写总结都有点不好意思,但是在学习过程中我真的有挺多在别的科目中感受不到的东西,遇到很多困难。我说几个我觉得我觉得比较重要的东西吧 时间 我觉得要学好Java,最重要的是:时间。我觉得这是最基本的东西,只要肯花时间,哪怕我不太聪明,也可以把一个东西弄懂。当然,这个时间是指有效学习时间,如果你能做到在图书馆连续上4、5个小时不玩手机不开小差,那坚持下去,你要是还学不会你来打我(`^´)ノ 方法 就我自己而言,我大概有三种学习模式 遍历式学习 这个很简单,你在看书的时候一页一页往后看就是。如果书写的没问题的话,这样学习基本上就可以学到所需的常用知识

使用idea编译spring-framework5.0源码

时间秒杀一切 提交于 2020-12-19 11:03:53
自从迈入java开发这个行当,从来没有好好的研究过源码,深感惭愧,话不多说,今天上一篇使用idea编译spring5.0源码。 以下在win中构建和编译过程分为 jdk环境的配置 gradle的下载和安装 spring-framework的下载和构建 创建新moudle验证编译是否成功 一、window环境下jdk的配置 该部分请不清楚的小伙伴参照其他文章执行,再次不在赘述,本文中使用jdk1.8.0_131 二、spring-frameword 是由gradle构建,下面来下载和安装 下载和选择 下载地址:https://services.gradle.org/distributions/ 根据spring的版本,当前使用的spring-frameword是使用gradle-4.4编译的,此处选择4.9-bin安装包即可。 安装: 选择安装路径,最好是英文目录 解压gradle-4.9-bin.zip 配置环境变量 GRADLE_HOME: GRADLE_REPOSTORY_HOME:gradle的仓库地址    三、spring-framework 的下载和构建 下载地址1:官网:https://github.com/spring-projects/spring-framework 下载地址2:5.0源码(未编译):https://github.com/escaperun

记录怎样把安全证书导入到java中的cacerts证书库

风流意气都作罢 提交于 2020-12-19 10:38:54
这次项目上需要去证书中解析公钥所以这里分享下方法: 首先准备一个证书文件比如叫:test.crt(一般是cer结尾) 下一步准备把证书导入到导入java中的cacerts证书库里 方法如下: 比如本地的jdk路径是C:\Program Files\Java\jdk1.8.0_181那么接下来我们要进入C:\Program Files\Java\jdk1.8.0_181\jre\lib\security 这时我是把证书放在当前文件夹的所以终端敲以下命令 可以先敲下keytool -list -keystore cacerts这个命令看下当前有多少个证书 再敲 keytool -import -alias test -keystore "cacerts" -file test.crt 这里要注意证书库名字需要引号不然后边会提示ClassNoFound 此时命令行会提示你输入cacerts证书库的密码, 你敲入changeit就行了,这是java中cacerts证书库的默认密码 进去后会提示你是否信任此证书输入Y或者y就会导入证书 再敲下keytool -list -keystore cacerts会发现多了一个证书这时就证明导入成功了 以后更新时,先删除原来的证书,然后导入新的证书 keytool -list -keystore cacerts keytool -delete

Java 集合

删除回忆录丶 提交于 2020-12-19 09:42:33
1、说说List,Set,Map三者的区别? List:有序、元素可重复 Set:元素不能重复 Map: 一个元素即一个键值对,key唯一标识一个键值对,key不能重复,元素可以重复,key、value均可以是任意类型。 2、Arraylist 与 LinkedList 区别? 1. 是否保证线程安全: ArrayList 和 LinkedList 都是不同步的,也就是都不保证线程安全; 2. 底层数据结构: Arraylist 底层使用数组; LinkedList 底层使用双向链表(JDK1.6之前为循环链表,JDK1.7取消了循环。注意双向链表和双向循环链表的区别,下面有介绍到!) 3. 插入和删除是否受元素位置的影响: ① ArrayList 采用数组存储,插入和删除元素的时间复杂度受元素位置的影响。 比如:执行 add(E e) 方法的时候, ArrayList 会默认在将指定的元素追加到此列表的末尾,这种情况时间复杂度就是O(1)。但是如果要在指定位置 i 插入和删除元素的话( add(int index, E element) )时间复杂度就为 O(n-i)。因为在进行上述操作的时候集合中第 i 和第 i 个元素之后的(n-i)个元素都要执行向后位/向前移一位的操作。 ② LinkedList 采用链表存储,所以对于 add(E e) 方法的插入

win10系统重装

我的梦境 提交于 2020-12-19 07:19:26
问题描述 win10开启热点网卡坏了,没折腾好。然后把系统网卡折腾坏了。 所以重装了系统,写下我的环境从零到晚上的过程 1安装系统 用WePE安装win10,镜像采用:cn_windows_10_enterprise_ltsc_2019_x64_dvd_d17070a8 (Windows 10 企业版 LTSC 2019原版镜像) 2激活 2.1激活代码如下: 首先Windows 10 企业版 LTSC 2019原版镜像: C:\Windows\system32>slmgr -ipk M7XTQ-FN8P6-TTKYV-9D4CC-J462D C:\Windows\system32>slmgr -skms kms.03k.org C:\Windows\system32>slmgr -ato C:\Windows\system32>slmgr -dlv C:\Windows\system32> 测试成功 2.2结果: 3登录win账号 (补充一下:刚装好系统C盘大概16G左右) 4创建系统还原点(这种方法容易出错,不用了) 这个适用于电脑出现了问题,但是任然可以进入操作系统,通过还原到自定义的电脑状态来解决问题。 过程: 4.1按如下操作打开界面 电脑右键属性》高级属性设置》系统保护》 4.2开启系统保护 点击c盘》点击配置》启用系统保护(其他盘也可以启动看自己需要,我暂时没有) 4