Fork me on GitHub

随笔分类 -  Java学习

记录java学习的学习笔记
摘要:String 优化 线程安全与线程不安全 StringBuffer 线程安全 速度较慢 StringBuild 线程不安全 速度较快 String 原理与使用场景 String 会放在字符串常量中。 new String() 在编译类文件的时候字符串会放入到常量池结构中,在类加载的时候,字符串会在常 阅读全文
posted @ 2020-11-20 08:25 Banana_Fish 阅读(120) 评论(0) 推荐(0) 编辑
摘要:JVM 学习 如何判断一个对象是否是垃圾 引用计数法 如果有一个对象指向这个对象计数+1 取消一个引用对象技术-1 若减为0则回收 无法解决循环引用 根可达算法(JVM使用的方法) main函数启动的时候会产生一个GC Root 每个对象若可达root则不是垃圾,否则将被是为垃圾 Root包括: J 阅读全文
posted @ 2020-07-19 23:01 Banana_Fish 阅读(267) 评论(0) 推荐(0) 编辑
摘要:JDK8 时间类使用 LocalDate + 构建LocalDate对象 + 获取值 LocalTime + 构建LocalTime对象 + 获取值 LocalDateTime + 构建LocalDateTime对象 + 获取值 Instant 时间增减修改 时间差 + Duration + Per 阅读全文
posted @ 2019-10-27 20:41 Banana_Fish 阅读(545) 评论(0) 推荐(0) 编辑
摘要:目录 1.泛型的定义 2.泛型的使用 3.泛型通配符 一、泛型的定义 泛型是java5的新特性,使用泛型会让程序编写简单安全,在编译的时候就会检查类型是否安全 定义:所谓泛型就是允许在定义类、接口和方法使用参数类型这个类型形参可以在声明变量、 创建对象、调用方法时动态指定(类型实参)泛型的参数类型只 阅读全文
posted @ 2018-10-21 18:29 Banana_Fish 阅读(250) 评论(0) 推荐(0) 编辑
摘要:目录 1.介绍Junit 2.Junit的使用 3.介绍log4j 4.log4j的使用 一、介绍Junit Junit是一个java语言单元测试的框架,这款框架旨在对java程序进行单元测试,并且写好的方法不需要在主函数中进行调用就可测试。 单元测试也就是常说的白盒测试。 二、Junit的使用 J 阅读全文
posted @ 2018-10-12 15:16 Banana_Fish 阅读(938) 评论(0) 推荐(0) 编辑
摘要:目录 1.注解与注释 2.注解的组成部分 3.基本注解 4.自定义注解 一、注解与注释 注释:用于在源代码中解释代码的功用,可以增强程序的可读性,可维护性,或者用于在源代码中处理不需运行的代码段,来调试程序的功能执行。 注解: 对于包、类、属性、方法辅助说明作用, 注解的添加不会影响java程序的执 阅读全文
posted @ 2018-10-06 20:09 Banana_Fish 阅读(181) 评论(0) 推荐(0) 编辑
摘要:目录 1.什么是反射 2.反射的运用 3.总结 一、什么是反射 反射:反射是指计算机程序在运行时(Run time)可以访问、检测和修改它本身状态或行为的一种能力 by 维基百科 java中的反射也是如此,利用反射的原理我们可以在程序运行时候的能够动态的创建对象,并且调用对象的方法和属性 它的作用是 阅读全文
posted @ 2018-10-05 11:11 Banana_Fish 阅读(189) 评论(0) 推荐(0) 编辑
摘要:目录 1、何为数据解析 2、xml解析 3、Excel解析 4、json解析 一、何为数据解析 举个栗子 如果不同的程序之间需要通信,假如说A程序需要B程序做一件事,B程序说 我可以做这件事,但是需要给我必须的数据。我才能做这件事。 我们可以用下面一副图表示: 在上面这幅图中,两个数据的传输都是有数 阅读全文
posted @ 2018-10-02 15:41 Banana_Fish 阅读(342) 评论(0) 推荐(0) 编辑
摘要:目录 1.认识网络基本模型 2.基于TCP协议的网络通信 3.基于UDP协议的网络通信 4.基于TCP/IP建立的协议 5.总结 一、网络的基本模型 OSI七层网络模型 应用层:面向用户的个各种协议 表示层:信息语法及之间的关联 会话层:不同机器之间建立 传输层:TCP、IP协议 网络层:路由器 数 阅读全文
posted @ 2018-09-27 15:13 Banana_Fish 阅读(351) 评论(0) 推荐(0) 编辑
摘要:目录 1.jar包 jsoup 2.解析步骤(爬去51job网页信息) 一、jar包 jsoup jsoup包是开源的html解析工具包 jsoup包下载链接http://www.mvnjar.com/org.jsoup/jsoup/1.11.3/detail.html 二、解析步骤(爬取51job 阅读全文
posted @ 2018-09-26 08:44 Banana_Fish 阅读(315) 评论(0) 推荐(0) 编辑
摘要:目录 1.线程同步 2.线程通信 3.线程池 4.生产者消费者模型(以馒头为例) 一、线程同步 由来:多个线程同时访问一个对象,需要对这个对象进行协调 同步 synchronized 可以修饰方法 同步方法 可以修饰对象 同步对象 如果不使用线程锁会出现以下情况: 两次id的结果相加不等于原始id 阅读全文
posted @ 2018-09-14 10:48 Banana_Fish 阅读(191) 评论(0) 推荐(0) 编辑
摘要:目录 1.进程与线程 2.线程的实现方式 3.线程的生命周期 一、进程与线程 进程:运行的程序和它所需要的资源(CPU、内存) 线程:线程是进程的一部分,粒度比进程小,一个进程可以拥有多个线程,至少包含一个线程,这个线程就是主线程。 线程与进程的区别: 1.一个进程里面至少拥有一个线程 2.线程之间 阅读全文
posted @ 2018-09-13 09:55 Banana_Fish 阅读(153) 评论(0) 推荐(0) 编辑
摘要:目录 1.File类 2.主要方法 3.流 一、File类 File类表示的是一个文件对象,可以表示一个文件或者文件夹 二、主要方法 1、创建文件 ceateNewFile 2、创建文件夹 mkDir() mkDirs() 3、遍历文件夹 File[] files = listFile(); Str 阅读全文
posted @ 2018-09-06 17:39 Banana_Fish 阅读(272) 评论(1) 推荐(0) 编辑
摘要:说到集合框架就要聊聊数据结构了,集合框架内部是有数据结构的。使用集合框架则是对数据进行增删改查的操作。 常见的数据结构有 数组 、动态数组、 链表、 队列、 堆栈、 树、 二叉树、 图 一、 数组数据结构 数组是一片连续的数据空间 数组内存空间是连续的,内存地址指向的是数组中第一个数的内存地址。 注 阅读全文
posted @ 2018-08-27 19:59 Banana_Fish 阅读(216) 评论(0) 推荐(0) 编辑
摘要:java.util包被称为java工具包,里面包含大部分的工具类 一、Random 随机数类 new Random() rd.nextInt() rd.nextInt(100) 二、Scanner 扫描器类 Scanner sc = new Scanner(system.in); String st 阅读全文
posted @ 2018-08-26 12:27 Banana_Fish 阅读(5291) 评论(0) 推荐(0) 编辑
摘要:java.lang包中的类是不需要import的 基本数据类型的包装类 包装类的使用相差不大,使用方法则以Integer为例 属性: MAX_VALUE 最大值 MIN_VALUE 最小值 构造方法: Integer t1 = new Integer(123); 将int构造成Integer Int 阅读全文
posted @ 2018-08-26 12:03 Banana_Fish 阅读(400) 评论(0) 推荐(0) 编辑
摘要:OOP编程有三大特性,封装,继承,多态 封装 封装是使用访问限制对类,属性和方法进行访问范围的限定。 如果不使用封装则会出现如下情况: 将属性私有化则只能通过一种方式进行该变类中的变量,原因是不能访问被私有化的属性和方法。 继承 继承需要使用到两个类,一个为子类,一个为父类。子类可以用父类的非私有的 阅读全文
posted @ 2018-08-17 19:20 Banana_Fish 阅读(200) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示