Java基础学习
文章平均质量分 66
xyzhang2018
这个作者很懒,什么都没留下…
展开
-
Java | Java 8 stream的详细用法
一、概述Stream 是 Java8 中处理集合的关键抽象概念,它可以指定你希望对集合进行的操作,可以执行非常复杂的查找、过滤和映射数据等操作。使用Stream API 对集合数据进行操作,就类似于使用 SQL 执行的数据库查询。也可以使用 Stream API 来并行执行操作。简而言之,Stream API 提供了一种高效且易于使用的处理数据的方式。特点:不是数据结构,不会保存数据。不会修改原来的数据源,它会将操作后的数据保存到另外一个对象中。(保留意见:毕竟peek方法可以修改流中元素)惰性转载 2022-04-06 20:31:26 · 317 阅读 · 0 评论 -
[Java]-理解String拼接,+运算符重载的实际效果
引申:一个常见的String的面试题public static void main(String[] args) { // TODO Auto-generated method stub String s1 = "Hello"; String s2 = "World"; String s3 = "Hello"+"World"; String s4 = s1+s2; String s5 = "HelloWorld转载 2022-01-02 16:54:20 · 134 阅读 · 0 评论 -
HashMap源码分析及线程安全性
存储结构-字段// 哈希桶 用于存放链表// 第一次使用时初始化 而非在定义时初始化 长度为2^ntransient Node<K,V>[] table;// 保存缓存的entrySettransient Set<Map.Entry<K,V>> entrySet;// 当前map拥有的键值对数量transient int size;// 记录HashMap内部结构被更改的次数(如:重新Hash)用于并发异常时使用transient int modC原创 2021-11-09 16:36:57 · 259 阅读 · 0 评论 -
[Java]-Java中double转BigDecimal的注意事项
【转载】原文链接:https://blog.csdn.net/lkforce/article/details/81564927先上结论:不要直接用double变量作为构造BigDecimal的参数。线上有这么一段Java代码逻辑:1,接口传来一个JSON串,里面有个数字:57.3。2,解析JSON并把这个数字保存在一个float变量。3,把这个float变量赋值给一个 BigDecimal对象,用的是BigDecimal的double参数的构造:new BigDecimal(double val转载 2021-04-22 11:39:30 · 363 阅读 · 0 评论 -
[Java学习笔记]-Java自动装箱和拆箱
之前一直没有特别关注这个问题,以为只有面试时才会用到,直到最近遇到一个大坑,遂总结相关知识,今后面试也好用到什么是自动装箱拆箱// 装箱:自动根据数值创建对应的Integer对象Integer i = 10;// 拆箱:将包装器类型转换为基本数据类型Integer n = 10;int m = i;自动装箱拆箱的实现根据反编译结果可知:装箱自动调用 Integer 的 valueOf(int) 方法拆箱自动调用 Integer 的 intValue 方法其他的包装器类型如Do.原创 2021-03-27 17:31:06 · 84 阅读 · 0 评论 -
[JavaWeb] Servlet详解
Servlet本质Servlet接口定义一套处理网络请求的规范,所有实现Servlet的类都需要实现它的五个方法,其中最主要的是两个生命周期方法init() destory(),以及一个处理请求的service(),也就是说所有实现Servlet接口的类都需要有以下三个部分:初始化时所作的工作销毁时所作的工作接收到请求做出的响应// jdk中的Servlet接口public interface Servlet { void init(ServletConfig var1) throw原创 2020-11-25 22:52:34 · 175 阅读 · 0 评论 -
前中后序遍历树--递归非递归方法Java实现
import java.util.Stack;class TreeNode { int val; TreeNode left; TreeNode right; TreeNode(int x) { val = x; }}public class Tree { //递归先序 public void REPreOrder(TreeNode...原创 2020-03-21 14:28:36 · 333 阅读 · 0 评论 -
[Java]-JDBC使用手册
JDBC简介JDBC(Java DataBase Connection)是通过Java访问数据库,能够执行SQL语句,由Java语言编写的类和接口组成。基本使用导入mysql-jdbc的jar包property->build path->libaries->add external jars初始化驱动: // 初始化驱动 try { Class.for...原创 2020-01-13 16:49:14 · 272 阅读 · 0 评论 -
[Maven]-基础与常用命令
Maven是一个Java项目管理和构建工具,它可以定义项目结构、项目依赖,并使用统一的方式进行自动化构建依赖管理maven最重要的功能就是管理依赖,项目中需要第三方的jar包,maven可以自动将依赖的jar包从中央仓库中下载并添加到项目中。scope说明compile编译时需要用到该jar包(默认)log4jtest测试时使用junitrunt...转载 2019-12-16 21:31:48 · 85 阅读 · 0 评论 -
[Java学习笔记]-Map中元素的删除
参考资料:https://blog.csdn.net/jackyrongvip/article/details/89397513HashMap源码分析 墙裂推荐!Java中Map删除元素传统方式:for (Iterator<HashMap.Entry<String, Integer>> it = map.entrySet().iterator(); it.hasN...原创 2019-11-10 22:30:14 · 191 阅读 · 0 评论 -
[Java学习笔记]-反射机制
一.反射机制获取类对象类对象概念: 所有的类,都存在一个类对象,这个类对象用于提供类本身的信息,比如有几种构造方法, 有多少属性,有哪些普通方法。获取类对象:在一个ClassLoader中,一种类只会有一个类对象存在,获取类对象有以下三种方式,但这三种方式取出来的类对象都是一样的 String classname = "reflection.Heros"; try { ...原创 2019-10-22 17:30:03 · 137 阅读 · 0 评论 -
[Java学习笔记]-lambda表达式
Lambda 允许把函数作为一个方法的参数(函数作为参数传递进方法中),使得代码变得更加紧凑简洁。相当于将一个接口中的方法使用lambda表达式的形式实现出来语法格式:(parameters) -> expression或(parameters) ->{ statements; }// 1. 不需要参数,返回值为 5 () -> 5 // 2. 接收一个...原创 2019-10-21 11:07:29 · 143 阅读 · 0 评论 -
Java学习笔记(2)- 基础队列使用简介
队列的定义(可采用链表的定义方式)特性:先进先出。 Queue&lt;Person&gt; queue = new LinkedList&lt;&gt;();关于队列的函数列表及功能说明:注:add()和remove()方法在失败的时候会抛出异常(不推荐) ,日常开发过程中offer()与pool()方法用的相对比较频繁.offer()方法往队列添加元素如果队列已满直接返回false,...原创 2019-03-03 16:22:50 · 117 阅读 · 0 评论 -
在Eclipse中使用JUnit进行单元测试
JUnit是什么?JUnit的官网给出的简介: JUnit is a simple framework to write repeatable tests. It is an instance of the xUnit architecture for unit testing frameworks.每编写完一个函数之后,都应该对这个函数的方方面面进行测试,这样的测试我们称之为单元测试。JUn...原创 2019-03-03 17:20:32 · 4128 阅读 · 0 评论 -
最新详细教程使用Eclipse创建Java项目
最近课程需要使用Eclipse,但是看到网上的一些教程不是太过陈旧就是不够详细,于是决定自己写一篇以后如果忘记也可以翻出来看看。如有错误欢迎指正!直接在Eclipse打开后的空白工作区中点击File -&amp;gt; New -&amp;gt; Java Project在弹出的对话框中输入项目名称,也可选择项目的存储位置和Java编译器的版本(若无特殊要求默认即可),编辑完成点击Finish在创建...原创 2019-03-22 21:03:12 · 1529 阅读 · 0 评论 -
Java的抽象类和接口
一.抽象类抽象类存在的意义就是为了继承,抽象类与普通类十分类似主要区别如下:抽象类无法实例化抽象方法必须为public或者protected,若为private则无法被子类继承子类必须override父类的所有方法,除非子类也为抽象类二.接口接口中定义的field一定是static final的接口同样无法实例化接口中的方法都是public的一个类可实现多个接口,以弥补J...原创 2019-04-09 22:50:54 · 99 阅读 · 0 评论 -
Java学习笔记 - instanceof关键字
instanceof关键字用来在运行时指出对象是否是特定类的一个实例。判断结果通过返回一个boolean类型值来指示,true则左侧对象为右侧类的实例。举个栗子://接口public interface CircularOrbit<L,E> { ...}//由接口衍生出的抽象类public abstract class ConcreteCircularOrbit<...原创 2019-04-20 22:58:36 · 431 阅读 · 0 评论 -
Junit中对两double类型值的比较
使用JUnit 4 测试正确性时出现以下错误The method assertEquals(double,double) from the type Assert is deprecated经查阅相关资料发现JUnit中没有assertEquals(double,double) 的方法,因为double值比较相等时存在误差需要用assertEquals(double,double,doub...原创 2019-04-29 08:57:10 · 980 阅读 · 0 评论 -
Oracle官方文档 Java代码规范
File Organization (文件组织)一个文件应由空行和标识每个节的可选的注释构成超过2000行的文件难以浏览应被避免Java source files (Java源文件)每个Java源文件都包括一个单一的public 类或接口,当private类和接口和public类相联系,你可以将他们放在相同的源文件中。public类必须是这个文件中的第一个类或接口。Java源文件还有以下...翻译 2019-05-20 22:46:44 · 944 阅读 · 0 评论 -
-verbose:gc 查看GC情况
** 命令输入方式 :**选择要运行的源文件,右键选择Run As -> Run Configurations -> Arguments在 VM argument 输入框中输入要运行的命令查看垃圾回收情况:-verbose:gc //在控制台输出GC情况-XX:+PrintGCDetails //在控制台输出详细的GC情况-Xloggc: filepath //将GC日...原创 2019-05-25 20:34:20 · 13397 阅读 · 0 评论 -
Java学习笔记(1)产生随机数
方法一调用Math.random()Math.random() 函数返回的是 [0,1) 上的一个double值//要产生一个 [0,10)上的整数System.out.println((int) (Math.random() * 10));方法二通过Random类来创建随机数实例化Random();通过创建的对象获取随机数。Random ran = new Random(...原创 2019-02-28 20:23:02 · 288 阅读 · 0 评论