JavaSE
Java语言核心基础,理论和实践相结合,从语法基础、面向对象、高级开发编程(API)三个模块展开介绍
百知_zmj
技术型女性
展开
-
如何在MyEclipse中使用JUnit测试单元
一、引入JUnit测试单元对应的jar包鼠标点击当前项目中的j任意jar---->右键—>Builder Path—>Configure Builder Path…在上一步出现的界面中,选择右侧Add Library点击 —> JUnit在点击JUnit测试单元的界面中可以设置JUnit测试版本,最后Finish即可。二、使用JUnit测试单元创建普通的java源文件即可注意:测试单元的类名不能使用Test命名在类中定义测试单元方法:方法的注意事项原创 2021-02-25 09:12:17 · 1344 阅读 · 5 评论 -
JVM调优 - 参数配置
你平时工作用过的jvm常用基本配置参数有哪些?long totalMemory = Runtime.getRuntime().totalMemory();//返回jvm启动时内存总容量long maxMemory = Runtime.getRuntime().maxMemory();// 返回jvm视图使用最大的内容容量System.out.println("-Xms:"+totalMemory/1024/1024);System.out.println("-Xmx:"+maxMemory/1024原创 2020-05-22 11:08:34 · 329 阅读 · 0 评论 -
JVM调优 - jvm参数盘点家底
查看jvm参数盘点家底你刚才提到说做过jvm调优和参数配置,请问如何盘点查看jvm系统默认值?第一种方式:jps 和 info(1) jps -l : 查看Java程序中运行中的进程号和对应的应用类 jinfo -flag PrintGCDetails 23480: 查看某个运行进程的jvm参数(2) jinfo -flags 23480 : 查看某一个进程中所有参数第二种方式:(1) -XX:+PrintFlagsInitial -->查看初原创 2020-05-22 11:04:56 · 298 阅读 · 0 评论 -
JVM调优 - 参数的类型
JVM的 参数类型(1) 标配参数[稳定]:java -version 、java -help、java -showversion(2) X参数(了解):-Xint : 解释执行-Xcomp:第一次使用就编译成本地代码-Xmixed:混合模式(3) XX参数【重点】boolean类型公式:-XX: + 或是-某一个属性值 注意:+表示开启 ; - 表示关闭案例:a. 是否打印GC收集细节? jps -l : 查看Java程序中原创 2020-05-22 10:56:52 · 308 阅读 · 0 评论 -
深入JVM原理之类加载 - 双亲委派模型
一、类加载机制类加载机制:虚拟机把描述类的数据从.class文件加载到内存中,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型。类加载的过程:(1) 加载:将class文件字节码内容加载到内存中;并将这些内容转换成方法区中的运行时数据结构;在内存中生成一个代表这个类的java.lang.Class对象,作为方法区类数据的访问入口在方法区中分配(2) 验证:确保class 文件中的字节内容符合jvm规范,并且不会危害jvm自身的安全(3) 准备:正式为类变量(原创 2020-05-08 21:08:12 · 354 阅读 · 0 评论 -
JVM - 垃圾回收
垃圾回收判断对象是否已死(1) 引用计数算法:给每一个对象中添加一个引用计数器,即每当一个地方引用此对象时,则计数器就加1,当引用失效时,则计数器就减1;任何时刻计数器为0的对象是不可能再被使用。优点:引用计数算符实现比较简单,判断效率高缺点:很难解决对象之间循环引用的问题。注意:目前主流的Java虚拟机并没有采用引用计数算法来管理内存。(2) 可达性分析算法:通过一系...原创 2020-05-08 14:23:32 · 258 阅读 · 0 评论 -
JVM内存结构及概述
JVM的内存结构JVM是运行在操作系统之上的,它并不没有直接和硬件进行交互。JVM内存体系结构图:注意:橘色代表所有线程共享的区域 灰色代表线程隔离的数据区域程序计数器:是一块较小的内存空间,它可以看作是当前线程执行的字节码的行号指示器。 字节码解释器工作时就是通过改变这个计数器的值来选取下一条需要执行的字节码指令, 分支、循环、跳转、异常处理、线程活肤等...原创 2020-04-11 21:43:32 · 293 阅读 · 0 评论 -
集合源码解析:HashMap的底层实现原理(jdk8.0)
源码解析JDK8.0集合:HashMap底层实现原理一、HashMap的概述HashMap是Map接口的实现类,键值对存储(基于哈希表的映射:根据指定的键,可以获取对应的值),并允许null作为键和值,线程不安全,即方法为非同步方法。这一点jdk7.0 和 jdk8.0没有区别。二、HashMap的存储结构jdk7.0中的HashMap采用数组+链表形式进行存储,但是如果一个数组...原创 2020-04-11 20:59:32 · 594 阅读 · 1 评论 -
集合源码解析:ArrayList的底层实现原理
jdk7.0源码解析ArrayList底层实现原理一、ArrayList的概述ArrayList是List的实现类, 存储多个元素,有序、有下标、元素可以重复,允许null作为元素进行存储;线程不安全,因为底层方法为非同步。二、ArrayList的存储结构底层用数组实现,所以每个ArrayList实例都有一个容量,代表底层数组的长度,默认长度为10。随着存储的数据不断增加,底层数组需要扩...原创 2020-04-10 00:39:51 · 668 阅读 · 0 评论 -
集合源码解析:LinkedList的底层实现原理
jdk7.0源码解析LinkedList底层实现原理一、LinkedList的概述LinkedList是List接口的实现类,底层用双向链表实现,有序、有下标、元素可以重复;线程不安全,因为底层方法为非同步。二、LinkedList的存储结构底层通过双向链表来实现,链表的每一个节点为Node,除了自身的数据域之外,还有一个前指针(prev)和后指针(next),分别指向前驱节点和后续节点...原创 2020-04-10 00:34:06 · 554 阅读 · 0 评论 -
大厂面试题目 - String 的内容替换相关面试题目
面试题目 - String 的内容替换public class Test { public static void main(String[] args) { // 定义如下三个 字符串: String s1 = "aabbcdabbajklkabb"; String s2 = "ab"; String s3 = "bab"; String r2=""...原创 2020-04-09 23:25:54 · 308 阅读 · 0 评论 -
大厂面试题目 - String中字符排列组合相关面试题目
面试题目 - String 相关输入一个字符串,打印输出该字符串中字符的所有排列。你可以任意顺序返回这个字符串数组,但里面不能有重复元素。示例:输入: s = “abc”;输出:[“abc”,“acb”,“bac”,“bca”,“cab”,“cba”]限制:1 <= s 的长度 < = 8import java.util.Arrays;import java.u...原创 2020-04-09 23:12:05 · 373 阅读 · 0 评论 -
JavaSE -常用类(十三)
一、基本概念概念:基本数据类型对应引用类型,称之为基本数据类型的包装类。二、基本数据类型对应的包装类:基本数据类型包装类名byteByteshortShortintIntegerlongLongfloatFloatdoubleDoublecharCharacterbooleanBoolean三、数据之间转...原创 2020-04-04 23:37:55 · 311 阅读 · 0 评论 -
JavaSE -常用类-Object类(十二)
一、Object类的介绍Object 类:位于 java.lang 包中,是继承关系的根类、超类,是所有类的父类(直接的父类或是间接父类);Object类型的引用可以用于存储任意类型的对象;Object类中定义方法,所有类都可以直接使用。二、Object类中常用方法:getClass() : 返回引用中实际存储的对象类型。开发实际应用:用于判断两个引用中实际存储的...原创 2020-04-02 00:25:33 · 448 阅读 · 0 评论 -
JavaSE -接口及高版本语法(十)
一、接口的概念接口:是一种标准、规范,接口的使用者和接口的实现者都必须遵循的约定。语法:(基于 jdk7.0 版本)(1) 关键字: interface interface 接口名{}(2) 接口在编译之后会生独立 .class 文件(3) 接口不能创建对象,但是可以声明引用。 接口名 变量名;(4) 接口中...原创 2020-04-01 14:10:54 · 267 阅读 · 0 评论 -
JavaSE - 内部类及Lambda表达式(十一)
一、概念内部类:在一个类的内部,定义了一个完整的类。 class Outer{ // 外部类 class Inner{} // 内部类 }内部类编译之后会生成独立的 .class 文件,.class 文件命名方式为:外部类的类名$内部类的类名.class内部...原创 2020-04-01 00:13:59 · 394 阅读 · 0 评论 -
eclipse的相关设置说明-debug调试进入JDK源码(六)
八、eclipse在调试过程中进入JDK源码在 eclipse中创建一个新的Java项目:左上角 File --> New --> Java Project点击 Java Project之后,在弹框中设置项目名,项目名任意,最终点击 Finish:找到自己电脑上安装的jdk根目录,在根目录中找到源码压缩包 src.zip,然后解压缩(解压位置没有要求):操作回到项目...原创 2020-03-24 00:49:14 · 424 阅读 · 0 评论 -
eclipse的相关设置说明-关联JDK源码(五)
七、eclipse中关联JDK源码点击Window -->Preferences,如下:点击 Preferences 之后 ,弹框中 点击 Java前面的 > ,点击Java里面的 Installed JREs点击 弹框中 JDK,右侧点击 第二项 Eidt JRE,右侧弹出一个框:在 弹出框的JRE system library 中找到 …\jre\lib\rt...原创 2020-03-22 22:45:01 · 587 阅读 · 3 评论 -
eclipse的相关设置说明(四)
五、eclipse中JDK版本的设置1. 点击 Window --> Preferences :点击 Java 前面的 > ,然后点击 Compiler 在右侧 JDK Compliance 后面的下拉框中选择编译版本,注意编译版本和运行版本保持一致,设置之后点击Apply。2. 点击 Window --> Preferences :点击 Java 前面的 ...原创 2020-03-22 21:50:16 · 349 阅读 · 0 评论 -
eclipse的相关设置说明(三)
三、设置程序中的字体点击Window --> Preferences 点击Preferences后,在弹框中点击 General 前面的 > ,然后点击Appearance 前面的 > ,接着点击 Colors And Fonts点击Basic前面的 > ,双击Basic里面的最后选项 Text Font在右侧弹框中可以设置字体类型和字体大小,并点击确认和应...原创 2020-03-22 15:09:20 · 702 阅读 · 0 评论 -
eclipse中创建项目的相关说明(二)
二、Java项目的创建及执行步骤点击左上角 File —> New —> Java Project点击 Java Project之后出现项目命名框,如下:项目创建之后,目录结构如下:点击 src —> 右键 —> Package ,创建包,用于存储源文件点击Package 之后,弹出一个框,用于设置包名:包创建之后,创建源文件:zpark —> 右键 ...原创 2020-03-22 01:19:43 · 912 阅读 · 0 评论 -
eclipse的安装说明
一、eclipse安装步骤双击 eclipseinstwin64.exe 可执行文件,稍等一会出现以下界面,选择第一个即可。上面界面选择第一项,会出现以下界面,选择安装目录:上个界面点击INSTALL之后会出现以下界面,安装进度条,中间过程中可能会弹出一些确认框,选择accept即可安装进度条全部为绿色,则安装完毕,点击LAUNCH,进入工具的主界面点击LAUNCH后,会出现...原创 2020-03-21 23:39:44 · 740 阅读 · 0 评论 -
JavaSE - 面向对象的三大特性之继承 (八)
一、目前程序存在的问题无法保证数据的安全性,同时也无法保证数据的有效性demo:二、封装的要求这里是引用private :私有的,被private 修饰的内容只能在类的内部使用为私有的属性提供公开的get/set方法(1) 为属性赋值:set方法public void set属性名(数据类型 变量名){this.属性名 = 变量名;}注意:set属性名 ...原创 2020-03-13 23:16:11 · 445 阅读 · 2 评论 -
jdk7.0源码解析HashSet底层实现原理
jdk7.0源码解析HashSet底层实现原理一、HashSet的概述HashSet是Set接口的实现类,用于存储多个元素,存储特点是无序、无下标,元素不可以重复,同时允许null作为元素;而且线程不安全,因为内部方法为非同步方法。二、HashSet的存储结构对于HashSet而言,底层是基于HashMap实现的;HashSet数据的存储是利用HashMap存储对应的数据,相关的操作...原创 2019-11-08 11:03:47 · 430 阅读 · 0 评论 -
线程面试题目-线程按序交替
程按序交替编写一个程序,开启3个线程,这三个线程的ID分别为A、B、C,每个线程将自己的ID控制台上打印10遍,要求输出的结果必须按照顺序显示。例如:ABCABCABCABC… 一次递归下去…public class TestABCLoop { public static void main(String[] args) { final ABCLoopDemo loop = new A...原创 2019-04-23 13:22:31 · 377 阅读 · 0 评论 -
线程锁的常见几种情况
线程锁的几种情况两个普通同步方法,两个线程:public class TestSynchronized { public static void main(String[] args) throws InterruptedException { final Number number = new Number(); //启动一个线程 new Thread(new Runn...原创 2019-04-23 13:34:06 · 299 阅读 · 0 评论 -
百知教育-Markdown的基本使用说明
Markdown的基本使用说明Markdown是一种纯文本格式的标记语言,通过简单的标记语法,它可以使普通文本内容具有一定的格式。一、标题在想要设置为标题的文字前面加 #空格 进行表示。一个 #是一级标题,两个#是二级标题,以此类推…支持六级标题。效果如下:这是一级标题这是二级标题这是三级标题这是四级标题这是五级标题这是六级标题二、字体设置代码:*斜体* 或是 _斜体...原创 2019-04-23 13:42:16 · 429 阅读 · 3 评论 -
jdk8.0相关特性(一)
JDK8.0相关特性一、JDK8.0中接口新语法JDK8.0,接口中可以定义静态的方法,带有方法的实现部分。语法:public static 返回值类型 方法名(形参列表){ //实现部分 }JDK8.0,接口中可以定义带有默认实现的非抽象方法语法:public default 返回值类型 方法名(形参列表){ // 方法实现 }二、Lambda表达式的相关语法...原创 2020-03-22 00:00:54 · 611 阅读 · 0 评论 -
JDBC常见错误及解决方案
JDBC常见错误及解决方案1. ClassNotFoundException分析:异常信息提示 类找不到,原因是oracle.jdbc.OracleDriver没有被加载到JVM中,可能是因为没有导入JDBC的驱动jar包,或是加载驱动的参数写错解决:查看项目中是否导入JDBC的驱动jar包,或是查看加载驱动参数是否正确。2. SQLException: No suitable dr...原创 2019-05-09 11:57:02 · 7074 阅读 · 0 评论 -
JDK8.0相关特性-方法引用(二)
五、方法引用方法引用:是Lambda表达式的另一种表现形式。使用场景:Lambda体中调用方法的参数列表与返回值类型,与函数式接口中抽象方法的参数列表和返回值一致时常见的方法引用形式:实例方法引用:(args)->expr.method(args);格式:expr::methodConsumer<String> c= (s)-> System...原创 2019-05-09 16:55:24 · 236 阅读 · 0 评论 -
JDK8.0相关特性-Stream(三)
JDK8.0相关特性六、 Stream(流)流(Stream):是数据渠道,用于操作数据源(集合、数组等)所生成的元素序列。Stream提供了强大的数据集合操作功能,但是它不能保存数据,像是一个高级的Iterator。注意:集合讲的是数据(集合用于存储数据),流讲的是计算(流用于对集合中数据的操作)Stream本身不能应用存储元素Stream不会改变源对象Strea...原创 2019-05-16 18:09:31 · 338 阅读 · 0 评论 -
JDK8.0相关特性-Optional类(四)
JDK8.0相关特性七、Optional类Optional 类:位于java.util.Optional包中,是一个容器类,代表一个值存在或是不存在(之前利用null表示一个值是否存在,JDK8.0开始利用Optional类更好的表达式一个值是否存在)。同时可以避免空指针异常利用Optional类中的静态方法,获取Optional对象:of(T value):创建非空置,如果va...原创 2019-05-17 14:59:24 · 386 阅读 · 0 评论 -
源码解析jdk7.0-HashMap的底层实现原理
HashMap底层实现原理一、HashMap的概述HashMap是Map接口的实现类,键值对存储(基于哈希表的映射:根据指定的键,可以获取对应的值),并允许null作为键和值,线程不安全,即方法为非同步方法。二、HashMap的存储结构Java编程语言中,最基本的两种结构:数组和链表(引用模拟指针),所有的数据结构都可以用这两种基本结构进行构建。数组的特点:寻址容易,插入和删除难;...原创 2019-09-19 19:56:20 · 574 阅读 · 0 评论