JAVA
太阳晒屁股了
System.out.println("hello world");
展开
-
Java中操作字节流与字符流的区别
结论:操作字节流时不会使用到缓冲区(内存),是直接操作文件本身;而操作字符流时使用了缓冲区,通过缓冲区再操作文件,如下图所示:验证:接下来开始验证环节,下面以两个写文件的操作进行比较,相同点是在操作完字节流和字符流之后都不关闭输出流。一,操作字节流代码import java.io.File; import java.io.FileOutputStream; import java.io.OutputStream; public class ByteTest { .原创 2020-10-19 17:52:12 · 136 阅读 · 0 评论 -
一文搞懂转发和重定向
在Servlet中实现页面的跳转有两种方式:转发和重定向如何测试?能否在OneServlet中保存值到请求域中,在另一个TwoServlet中打印出来?如果是不同的请求,不能取出来。如果是同一次请求是可以取出来的。一,转发由服务器端进行的页面跳转原理图转发的方法案例需求:实现从OneServlet中转发到TwoServlet步骤:OneServlet向请求域中添加了一个键和值,转发给TwoServlet TwoServlet就从请求域中取出键和值,打.转载 2020-10-10 11:55:20 · 163 阅读 · 0 评论 -
JVM底层原理、四大垃圾回收算法
1,类装载器ClassLoader介绍1.1,类装载器的种类,包含启动类加载器(Bootstrap),扩展类加载器(Extension),应用程序类加载器(AppClassLoader)注意:Classloader有多种,可以说三个,也可以说是四个(第四个为自己定义的类加载器,继承ClassLoader),系统自带的三个分别为:1,启动类加载器(Bootstrap) ,C+...原创 2020-04-22 23:28:21 · 241 阅读 · 0 评论 -
浅谈Java中内部类
引言:在Java中内部类是我们经常见到却容易忽略的,如线程对象Thread通过内部类Runnable实现多线程。我们都知道,Java语言是不支持多继承的,引入内部类可以解决Java单继承的缺陷。一,内部类存在的意义文章引言部分有说到,内部类的引入解决了Java单继承的缺陷。而它随之带来的还有以下几个优点:1,内部类可以对同一包中的其他类隐藏起来;2,当我们想要定义一个回调函数却不想写大量代...原创 2019-10-25 14:32:14 · 126 阅读 · 0 评论 -
浅谈Java中Set集合
一,Set集合的特征1,无序 (取出顺序与存入的顺序不一定相同);2,值不能重复。1,下面通过实例证明Set集合存取的无序性:public class SetTest { public static void main(String[] args) { Set<String> set = new HashSet<>(); ...原创 2019-10-24 14:22:35 · 337 阅读 · 0 评论 -
Java中为什么要重写 hashcode 和 equals 方法
问题:为什么要重写 hashcode 和 equals 方法我在面试Java初级开发的时候,经常会问:你有没有重写过hashcode方法?不少候选人直接说没写过。我就想,或许真的没写过,于是就再通过一个问题确认:你在用HashMap的时候,键(Key)部分,有没有放过自定义对象?而这个时候,候选人说放过,于是两个问题的回答就自相矛盾了。最近问下来,这个问题普遍回答不大好,于是在本文里,就干...原创 2019-04-11 10:56:04 · 346 阅读 · 1 评论 -
单例模式之懒汉的并发问题
饿汉模式:class Single{ private staitc final Single s= new Single(); private Single(){} public static Single getSingle(){ return s; }} 懒汉模式:class Single{ private static Sin...原创 2017-10-01 10:39:00 · 790 阅读 · 0 评论 -
java中assert(断言)
关于java中assert(断言)的使用讲解说明:写的不是很全面,有任何问题请留言,多交流,谢谢!1.eclipse、myeclipse开启assert(断言),默认是关闭,如下:说白了就是设置一下jvm的参数,参数是-ea或者-enableassertions2.assert格式(1)assert [boolean 表达式]如果[boolean表达式]为true...转载 2017-12-24 21:58:01 · 2070 阅读 · 0 评论 -
Java后台框架中具体什么时候需要实现序列化接口Serializable
前言:如果你的对象需要网络传输或者持久化(对象直接转换为字节的形式传输),那么就需要实现Serializable接口。为了防止反序列失败,该对象需提供一个默认的serialVersionUID(该值在反序列化的时候会进行校验校验失败并抛出InvalidClassException异常)。现在需要将一个对象返回给前端,那么该对象是否需要实现 Serializable接口,并提供一个默认的se...原创 2019-07-04 12:02:53 · 9337 阅读 · 11 评论 -
DefaultSerializer requires a Serializable payload but received an object of type...
1,项目最近改了点东西,今天往redis缓存里存入内容时报错了,如下:Failed to serialize object using DefaultSerializer; nested exception is java.lang.IllegalArgumentException: DefaultSerializer requires a Serializable payload bu...原创 2019-07-19 18:47:26 · 2040 阅读 · 0 评论 -
Java中的对象术语(PO/POJO/VO/BO/DAO/DTO)
1、PO(persistant object) 持久对象(理解为dao层:接收和返回的java bean,也就是通常写在model包中的model)1. 有时也被称为Data对象,对应数据库中的entity,可以简单认为一个PO对应数据库中的一条记录,多个记录可以用PO的集合。2.在o/r 映射的时候出现的概念,如果没有o/r映射,就没有这个概念存在了。3.PO中应该不包含任何对数...原创 2019-09-09 12:42:04 · 224 阅读 · 0 评论 -
java中移位运算
概念<< : 左移运算符,num << 1,相当于num乘以2>> : 右移运算符,num >> 1,相当于num除以2>>> : 无符号右移,忽略符号位,空位都以0补齐代码验证public class BitWise { private static vo...原创 2019-03-05 17:09:46 · 109 阅读 · 0 评论 -
Java并发编程:volatile关键字解析
Java并发编程:volatile关键字解析 volatile这个关键字可能很多朋友都听说过,或许也都用过。在Java 5之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果。在Java 5之后,volatile关键字才得以重获生机。 volatile关键字虽然从字面上理解起来比较简单,但是要用好不是一件容易的事情。由于volatile关键字是与Java...转载 2019-01-03 22:11:53 · 88 阅读 · 0 评论 -
多线程 ForkJoinPool
背景:ForkJoinPool的优势在于,可以充分利用多cpu,多核cpu的优势,把一个任务拆分成多个“小任务”,把多个“小任务”放到多个处理器核心上并行执行;当多个“小任务”执行完成之后,再将这些执行结果合并起来即可。这种思想值得学习。ForkJoinPool定义:Java7 提供了ForkJoinPool来支持将一个任务拆分成多个“小任务”并行计算,再把多个“小任务”的结果合并成总...转载 2019-01-03 21:36:17 · 312 阅读 · 0 评论 -
Java反射中Method的invoke()方法的使用
public class InvokeObj { public String show(){ return "无参show()方法"; } public String show(String name) { return "一个参数show()方法"; } }public class Test ...原创 2019-09-09 12:40:02 · 233 阅读 · 0 评论 -
Java中static关键字的用法
[java]static关键字的四种用法在java的关键字中,static和final是两个我们必须掌握的关键字。不同于其他关键字,他们都有多种用法,而且在一定环境下使用,可以提高程序的运行性能,优化程序的结构。下面我们先来了解一下static关键字及其用法。static关键字1.修饰成员变量在我们平时的使用当中,static最常用的功能就是修饰类的属性和方法,让他们成为类的...原创 2019-10-18 18:59:48 · 119 阅读 · 0 评论 -
java设计模式之建造者模式
java设计模式之建造者模式一、什么是建造者模式建造者模式:是将一个复杂的对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。工厂类模式提供的是创建单个类的模式,而建造者模式则是将各种产品集中起来进行管理,用来创建复合对象,所谓复合对象就是指某个类具有不同的属性,其实建造者模式就是前面抽象工厂模式和最后的Test结合起来得到的。建造者模式通常包括下面几个角色:1、Build...原创 2019-09-09 12:42:44 · 125 阅读 · 0 评论 -
Java中泛型T
本节我们主要来介绍泛型的基本概念和原理后续章节我们会介绍各种容器类,容器类可以说是日常程序开发中天天用到的,没有容器类,难以想象能开发什么真正有用的程序。而容器类是基于泛型的,不理解泛型,我们就难以深刻理解容器类。那,泛型到底是什么呢?什么是泛型?一个简单泛型类我们通过一个简单的例子来说明泛型类的基本概念、实现原理和好处。基本概念我们直接来看代码:publ...转载 2018-05-27 11:06:40 · 199 阅读 · 0 评论 -
request.getSession(true)和request.getSession(false)的区别
【官方解释】 getSessionpublicHttpSessiongetSession(booleancreate)Returns the currentHttpSessionassociated with this request or, if if there is no current session andcreateis true, returns a n...原创 2019-09-09 12:42:59 · 220 阅读 · 0 评论 -
java中的native
java中native的用法前言:在查看 Thread.java 文件时,发现有一个 方法比较特殊private native void start0();概念:native关键字说明其修饰的方法是一个原生态方法,方法对应的实现不是在当前文件,而是在用其他语言(如C和C++)实现的文件中。Java语言本身不能对操作系统底层进行访问和操作,但是可以通过JNI接口调用其他语言来实现对...转载 2019-10-18 19:03:03 · 219 阅读 · 0 评论 -
java中位运算
十进制转二进制:private static void toBinary(int num) { String str = ""; while (num != 0) { str += num % 2; num = num / 2; } String binary = new StringBuilder(str).reverse().toString(); Sys...原创 2019-10-18 19:07:43 · 82 阅读 · 0 评论 -
Java中continue与break区别
1、定义break:是跳出当前的循环块或者程序块。循环块有for、do while、while,程序块有switch(){case 1: xxx;break;}在循环体中的作用是跳出正在循环的循环块,在程序块中的作用是中断与下一个case的比较。continues:可以强迫程序跳到循环的起始处,当程序运行到continue语句时,即会停止运行剩余的循环主体,而是回到循环的开始处继续运行。...原创 2019-09-09 12:41:27 · 723 阅读 · 0 评论