Java学习·
小白学习java的路线
郝大侠001
一只程序猿!
展开
-
序列化接口的两大疑问!
序列化接口主要从两方面来说明:1.为什么要实现空接口Serializablea.首先实现空接口目的是为了做序列化标识,标注该接口为序列化接口;b.一般音频、文件传输要序列为二进制流进行传输;而我们java对象想要完整的传输,就可以通过对象序列化来完成;c.当你想把的内存中的对象写入到硬盘的时候;当你想用套接字在网络上传送对象的时候;当你想通过RMI传输对象的时候;就需要序列化对象;注:a)比如说你的内存不够用了,那计算机就要将内存里面的一部分对象暂时的保存到硬盘中,等到要用的时候再读入到内存中,原创 2020-07-23 15:38:44 · 288 阅读 · 1 评论 -
Jackson常用注解及用法
IO: 面向流,每次都要请求cpu操作,通过DMI进行通信。NIO (new io)JDK1.4:在通道(每次不需要请求cpu)中,将缓冲块运输到目的地;AIO (async io)JDK1.7:异步回调处理消息。当需要大量的通信(文件、字符、字节)通信,可以选择NIO或者AIO方式提高通信效率。场景zk...原创 2020-07-05 16:39:51 · 666 阅读 · 0 评论 -
Quartz任务调度框架
三大参数1.jobDetail包装一些任务的自定义信息2.Trigger 触发器2.1 简单的任务,每隔多长时间可以执行2.2 cron表达式2.3 一天之内的触发规则2.4 日历的触发规则3.Scheduler 调度器指挥执行,本质是线程轮询扫描,调度器是单例的。jobstore 保存任务信息,一种是保存到内存,另一种是通过jdbc 持久化。利用自带的建表脚本生产11张表!任务如何随spring启动而执行?commandLineRunner接口,可以实现spring启动后原创 2020-06-06 17:43:15 · 350 阅读 · 0 评论 -
计算任务执行时间System.nanoTime
【填坑纪事】一次用System.nanoTime()填坑System.currentTimeMills()的实例记录System.nanoTime与当前时间无关,更精确,用于任务执行时间比较! 9 仅仅只有当在同一java虚拟机实例中获取的两个值之间的差值被计算时,返回值才有意义。10 11 例如,去测量某代码执行花费了多长时间:12 long startTime = System.nanoTime(); 13 //...被测量的代码... 14 long estimatedTime =原创 2020-05-18 17:19:22 · 1022 阅读 · 0 评论 -
模糊搜索
可以直接用mysql函数locate(#{s},str) > 0返回为s在str第一次出现的位置,没有返回0原创 2020-05-18 15:39:13 · 565 阅读 · 0 评论 -
jackson
https://blog.csdn.net/u011054333/article/details/80504154原创 2020-05-18 11:58:42 · 144 阅读 · 0 评论 -
数据结构基础知识图
原创 2020-05-02 23:33:10 · 256 阅读 · 0 评论 -
匿名内部类
匿名内部类://接口public interface ISayHello { String sayHello(String name);}public class SayHelloTest { public static void main(String[] args) { ISayHello obj = new ISayHello() { public...原创 2020-03-09 11:20:30 · 228 阅读 · 0 评论 -
Filter过滤器
这里写的过滤器用的是适配器模式,思路为:先写一个类实现Filter,然后在让你写的过滤器来继承自这个类;步骤:1.建一个AbstractFilter实现Filter;2.建一个类来继承AbstractFilter,还要在web.xml中配置;引用...原创 2019-12-24 16:52:15 · 147 阅读 · 0 评论 -
java完善的日志记录系统
日志架构java日志→Filebeat→Logstash→Elasticsearch→Kibana or GrafanaFilebeat用于转发和集中日志数据的轻量级传送程序。作为服务器上的代理安装,Filebeat监视您指定的日志文件或位置,收集日志事件,并将它们转发到Elasticsearch或Logstash进行索引。Filebeat的工作方式如下:启动Filebeat时,它...原创 2019-12-23 14:49:38 · 482 阅读 · 0 评论 -
String拼接优化为StringBuilder.append
从jdk 5开始,Java就对String字符串的+操作进行了优化,该操作编译成字节码文件后会被优化为StringBuilder的append操作。StringBuilder.append源码 @Override public StringBuilder append(Object obj) { return append(String.valueOf(obj)); ...原创 2019-04-20 09:43:11 · 1292 阅读 · 0 评论 -
gc
垃圾回收机制: 工作模式:每分配一个新对象,“堆指针”简单的移到未分配的内存。gc负责:1 回收空间2 使堆中对象紧凑排列,这样堆指针移动更加简单。虚拟机: 1.JIT即时编译技术:加载器加载类,先找到.class文件,编译所有代码 2.java hotspot:(替代jit)不会被执行的代码就不被编译,每次执行都做优化,提升速度。初始化: 1.无法阻止自动化初始的进行...原创 2018-09-13 16:46:08 · 191 阅读 · 0 评论 -
java易混小知识点
1. 面向过程语言:数据定义和函数调用,比较面向计算机; 面向对象语言:问题概念的抽象,阅读少量代码,高效理解程序 。2. 引用:String s;//s即为引用,用引用操作内存中的对象,引用即指向内存。 对象:String s=new String(“asd”);//new新建对象,与引用绑定。3. 栈内存:对象引用 堆内存:new代码时,会自动在堆里进行内存分配。 常量池...原创 2018-09-13 16:29:13 · 221 阅读 · 0 评论 -
接口和抽象类 重载和重写
什么时候使用抽象类和接口 1如果你拥有一些方法并且想让它们中的一些有默认实现,那么使用抽象类吧。 2如果你想实现多重继承,那么你必须使用接口。由于Java不支持多继承,子类不能够继承多个类,但可以实现多个接口。因此你就可以使用接口来解决它。 3如果基本功能在不断改变,那么就需要使用抽象类。如果不断改变基本功能并且使用接口,那么就需要改变所有实现了该接口的类。重载:重载是发生在同一个类...转载 2018-07-30 18:17:42 · 613 阅读 · 0 评论 -
字节流_字符流
IO流分为 字节流和字符流 * 或者读取流和写入流 * 或者输入流和输出流(内存)字节流字节码,如视频、音频(一个中文2字节,一个英文1字节)。 写入:字节数组[12,34,56,4]按照字节数组的顺序进行写入; 读取:读取时需要相应的编码转化字节数组; ASCII –美国 GBK–中国 UTF–国际 普通流:与硬盘交互 Inp...原创 2018-06-29 15:35:54 · 159 阅读 · 0 评论 -
final
引用类型变量 (1)把类名当作是一种类型来声明变量,这种变量叫引用类型变量。如:People people; (2)引用类型变量保存对象的“引用”,即对象的地址。 (3)对象的创建 new 类名() 如:new People(); (4)new创建对象后返回对象的引用,对象没有名字,只能使用对象的引用间接使用对象,引用类型变量就是专门用来保存对象引用的。 如:...原创 2018-06-04 22:14:04 · 6979 阅读 · 0 评论 -
import_java_作用
前言学了java一段时间了,一直知道import是导包的功能,却不知道它正在的含义。。区别 #includejava中import和c语言中#include不同,import只是编译器为了帮助你偷懒,而添加的这个功能,而#include是将类库导入并加载;importimport java.io.InputStream;import java.lang.Object;...原创 2018-05-21 17:38:02 · 456 阅读 · 0 评论 -
线程
———— 并发:同一个时间点运行的多个程序 并行:同一个时间段运行的多个程序 ————进程进程是每个程序都能获取到的内存资源; 单进程:获取到一个程序; 多进程:获取到两个程序。线程一个进程中多个任务的进行,每个任务就是一个执行路径,也就是一个线程;创建线程的两种方式:1、继承Thread类class MyThread extends Thre...原创 2018-04-12 22:24:14 · 103 阅读 · 0 评论 -
抽象类、接口、final、枚举
抽象类用abstract修饰的,没有方法体的方法,必须通过子类重写来实现1、无法直接通过new关键字创建实例(抽象类是子类中抽取出来的共同部分,无法完整描述整个事务) 2、包含抽象方法,抽象方法必须由子类具体实现,并且抽象方法权限都是public 3、有构造器 4、有普通方法public abstract class Animal { public Anim...原创 2018-03-18 22:59:10 · 311 阅读 · 0 评论 -
异常
Exception可以抛出的基本类型,可以通过程序来控制错误;1、抛出当前方法异常: throw new NullPointerException();//方法内自行处理异常public static void main(String[] args){ //Object[] obj = new Object[1000000000];//ERROR ...原创 2018-03-18 22:27:35 · 151 阅读 · 0 评论 -
面向对象
类、对象、封装1、类模板:创建一类数据的模板,同一个.java文件多个类,可生成多个.class文件; 2、对象:由模板具体出的实例;new的过程中会向内存申请空间,与malloc类似; 3、封装:狭义上是对一个类型的所有行为的封装,即为类模板添加行为;三大特性1.封装:将类里的属性或实现细节隐藏起来,对外界提供公共方法 2.继承:子类继承父类所有非私有的属性和方法,父...原创 2018-03-11 18:36:48 · 173 阅读 · 0 评论 -
java飞机大战
写在最前面1、本项目的目的不是为了开发游戏,而是为了领悟面向对象以及对基础语法的全面深刻认识,也就是说,只要你学完面向对象和基础语法就完全可以写出来一套完整的飞机大战游戏。 2、本项目适应于初学者,建议按照以下步骤来进行程序编写,尤其是基础薄弱,更要对照代码,按步骤一步步来实现每一个功能。代码功能实现首先要明白三个东西,窗口Jframe(你也可以想象成相框)、面板Jpanel(你...原创 2018-02-09 13:22:20 · 956 阅读 · 2 评论 -
2、基本类型变量
eclipse使用1、ctrl+i 排版 2、Ctrl+shift+/ 加注释 3、debug中 F5跳入方法内部(遇到函数进入函数内部); F6单步 F7跳出当前函数; F8结束调试,相当于调到下一个断点;数据类...原创 2018-01-11 08:33:53 · 164 阅读 · 0 评论 -
java_0_se体系
1、Java开发环境Java介绍 Java如何学习 Java三大版本区别 下载/安装环境 环境变量配置 记事本Java程序 2、基本类型变量eclipse使用 Java注释使用 分隔符 转义字符,关键字 标识符及其命名规范,变量三要素 常量,进制转换,基本数据类型定义 赋值及取值范围,浮点数及其误差问题 String类型定义及赋值,数据转换原创 2018-01-08 08:43:54 · 305 阅读 · 0 评论 -
1、Java开发环境
1、Java介绍 2、Java三大版本区别 SE标准版:用户学习java语言的基础 EE企业版:主要用于构建C/S架构,企业级网站; ME移动版:主要用于做手机相关软件,c/s架构;比如QQ; 手机小游戏。 3、下载/安装环境 4、环境变量配置 path = %JAVA_HOME%/bin; 二进制文件 classpath = %JAVA_HOME%/lib; 类库文件原创 2018-01-09 12:14:30 · 214 阅读 · 0 评论 -
super、this
public class OverreadDemo {/* * 重写面试题 * *1、 super、this分别是父类和本类的引用, *2、 可调用构造函数super(); * 可传递普通函数;可调用成员变量; */ public static void main(String[] args) { new B(); }}class A {...原创 2018-03-18 20:42:34 · 110 阅读 · 0 评论 -
常见算法
三种排序快排public class kuaipai { /*思想:把vlaue排到中间,左边小,右边大 * 1、选确定边界beginindex、endindex 和传入数组array * 2、指针移动begin、end */ public static void main(String[] args) { int arr...原创 2018-03-27 12:50:11 · 158 阅读 · 0 评论 -
java常用类
String类1、string波尔类型1、boolean equals(Object obj);//判断内容相等--- str == str1 //判断地址相等2、boolean equalsIgnoreCase(String str);//忽略大小写3、boolean contains(String str);//判断是否包含str4、Boolean startsWith(S...原创 2018-04-15 21:12:42 · 157 阅读 · 0 评论 -
集合
集合:是数据存储的容器;长度可变,存放的是对象的引用(哈希值,即地址值),并非实际的基本数据类型;一、Collection接口是集合类的根接口,java中没有提供这个接口的直接实现类,但是却让其被继承产生了两个接口Set和List。Set中不能包含重复的元素;(无序,不重复) List是一个有序的集合,可包含重复元素,提供按索引访问方式(有序、可重复) 存放有序对象,可重复...原创 2018-04-21 10:53:11 · 178 阅读 · 0 评论