java基础知识
文章平均质量分 56
极速小乌龟
Java开发爱好者,最近笔记都是写在了本地,没有上传。不经常登录这个,如果有问题可以联系微信15021801061
展开
-
JDK8 stream 流看这一篇就够了
一、stream简介Stream API是Java 8中加入的一套新的API,主要用于处理集合操作,不过它的处理方式与传统的方式不同, 称为“数据流处理”。流(Stream)类似于关系数据库的查询操作,是一种声明式操作。根据我个人的理解stream就是将数据转换成一个流,然后通过封装的API 对数据进行操作,stream的API基本上能实现各种数据操作。如果将集合中的数据看做是数据库中的表,那么stream的API则相当于SQL语言的各种语句。能够对数据进行筛选和各种...原创 2021-07-06 11:38:07 · 619 阅读 · 1 评论 -
jdk8 stream流合并list
今天工作的时候遇到一个问题类似于:List<String> imagePathList = new ArrayList<>();imagePathList.add("建平西校10001.jpg;10002.jpg");imagePathList.add("建平西校10003.jpg;10004.jpg");imagePathList.add("建平西校10005.jpg;10006.jpg");imagePathList.add("建平西校10007.jpg;1000原创 2021-06-29 10:00:08 · 1488 阅读 · 0 评论 -
spring ApplicationContext 设置configLocations(配置文件路径)
一、设置configLocations(配置文件路径) public ClassPathXmlApplicationContext(String configLocation) throws BeansException { this(new String[] {configLocation}, true, null); } /** * Create a new ClassPathXmlApplicationContext with the given parent, *原创 2021-04-29 12:20:02 · 809 阅读 · 0 评论 -
JVM知识点
GC和GC Tuning作者:马士兵教育 http://mashibing.comGC的基础知识1.什么是垃圾C语言申请内存:malloc freeC++: new deletec/C++ 手动回收内存Java: new ?自动内存回收,编程上简单,系统不容易出错,手动释放内存,容易出两种类型的问题:忘记回收多次回收没有任何引用指向的一个对象或者多个对象(循环引用)...转载 2020-04-23 08:38:11 · 425 阅读 · 0 评论 -
idea快捷键
Ctrl快捷键 介绍Ctrl + F 在当前文件进行文本查找 (必备)Ctrl + R 在当前文件进行文本替换 (必备)Ctrl + Z 撤销 (必备)Ctrl + Y 删除光标所在行 或 删除选中的行 (必备)Ctrl + X 剪切光标所在行 或 剪切选择内容Ctrl + C 复制光标所在行 或 复制选择内容Ctrl + D 复制光...转载 2020-01-04 11:04:42 · 218 阅读 · 0 评论 -
转载:HTTP
*备注:因为是从网上下载下来的实在是不知道出自哪里,没办法附上原文链接,如有知情人请告知我修改一下,谢谢~基础概念Web 基础URL请求和响应报文HTTP 方法GET:获取资源POST:传输实体主体HEAD:获取报文首部PUT:上传文件DELETE:删除文件OPTIONS:查询支持的方法TRACE:追踪路径CONNECT:要求用隧道协议连接代理HTTP ...转载 2019-09-02 16:36:57 · 251 阅读 · 0 评论 -
Chrome浏览器安装JsonView插件
因为开发一般使用chrome浏览器。网页上浏览Json文件的时候为了方便可以安装一下JsonView插件第一步:下载jsonView ZIP压缩包下载地址:https://github.com/gildas-lormeau/JSONView-for-Chrome下载完成后,放到自己经常安装软件的目录第二步:解压安装1.进入插件安装页面2.勾选开发者模式,然后点...原创 2019-08-13 12:22:28 · 771 阅读 · 1 评论 -
怎么确保一个集合不能被修改?
答案:通过Collections工具类提供的方法Collections.unmodifiableMap(map)Collections.unmodifiableList(list)Collections..unmodifiableSet(set)这道题目考察的主要就是对Collections的掌握。需要注意的是:很多人考到这个题目会想到使用final关键字。因为我们知道凡是被f...原创 2019-08-05 18:27:49 · 321 阅读 · 1 评论 -
哪些集合类是线程安全的?
答案:vector:就比arraylist多了个同步化机制(线程安全)statck:堆栈类,先进后出hashtable:就比hashmap多了个线程安全enumeration:枚举,相当于迭代器这道题目考察的是对Java容器的理解。这几个线程安全的集合类基本上都是jdk1.1中出现的,基本上实现方式就是直接对方法上锁,锁的粒度太大了,所以性能不是很好。像vector因为效率...原创 2019-08-05 18:06:51 · 3533 阅读 · 0 评论 -
java 容器都有哪些?
容器可以说是Java Core中比较重要的一部分了。数组,String,java.util下的集合容器==============================================================================数组长度限制为 Integer.Integer.MAX_VALUE;String的长度限制: 底层是char 数组 长度...原创 2019-07-27 18:36:57 · 45681 阅读 · 6 评论 -
JAVA IO
概览磁盘操作字节操作字符操作对象操作网络操作1. InetAddress2. URL3. Sockets4. DatagramNIO1. 流与块2. 通道与缓冲区2.1 通道2.2 缓冲区3. 缓冲区状态变量4. 读写文件实例5. 阻塞与非阻塞5.1 阻塞式 I/O5.2 非阻塞式 I/O6. 套接字实例6.1 ServerSoc...转载 2019-09-02 16:36:26 · 265 阅读 · 0 评论 -
java 基础
关键字1. final2. staticObject 通用方法1. 概览2. clone()3. equals()继承1. 访问权限2. 抽象类与接口的区别3. super()String1. String, StringBuffer and StringBuilder2. String 不可变的原因3. String.intern()基本...转载 2019-09-02 16:35:29 · 260 阅读 · 0 评论 -
Java 容器
概览1. List2. Set3. Queue4. Map5. Java 1.0/1.1 容器容器中的设计模式1. 迭代器模式2. 适配器模式散列源码分析1. ArraList2. Vector 与 Stack3. LinkedList4. TreeMap5. HashMap6. LinkedHashMap7. ConcurrentHashMap...转载 2019-09-02 16:33:16 · 161 阅读 · 0 评论 -
JVM
内存模型1. 程序计数器2. Java 虚拟机栈3. 本地方法栈4. Java 堆5. 方法区6. 运行时常量池7. 直接内存垃圾收集1. 判断一个对象是否可回收1.1 引用计数1.2 可达性1.3 引用类型1.3.1 强引用1.3.2 软引用1.3.3 弱引用1.3.4 虚引用1.3 方法区的回收1.4 finalize()2. 垃圾...转载 2019-09-02 16:32:38 · 191 阅读 · 0 评论 -
MYSQL
存储引擎1. InnoDB2. MyISAM3. InnoDB 与 MyISAM 的比较数据类型1. 整型2. 浮点数3. 字符串4. 时间和日期索引1. 索引分类1.1 B-Tree 索引1.2 哈希索引1.3. 空间索引数据(R-Tree)1.4 全文索引2. 索引的优点3. 索引优化3.1 独立的列3.2 前缀索引3.3 多列索...转载 2019-09-02 16:48:06 · 185 阅读 · 0 评论 -
Lambda表达式简单入门
1,为什么使用Lambda表达式Lambda是一个匿名函数,我们可以把Lambda表达式理解为是一段可以传递的代码(将代码像数据一样进行传递)。可以写出更简洁、更灵活的代码。作为一种更紧凑的代码风格,使Java的语言表达能力得到了提升。2,Lambda表达式的关键:从匿名类到 Lambda 的转换首先创建一个Cook接口package com.xingli.lambdaD...原创 2019-09-18 17:48:13 · 176 阅读 · 0 评论 -
RabbitMQ的简单使用
1.创建连接工具类package com.xingli.mqTset;import com.rabbitmq.client.Connection;import com.rabbitmq.client.ConnectionFactory;/** * @ClassName ConnectionUtil * @Description TODO * @Author William...原创 2019-09-18 17:57:43 · 248 阅读 · 0 评论 -
Collection 和 Collections 有什么区别?
这道题目考察对Java容器的理解。Collection是所有单列集合的一个超类。List,Set,Queue接口都继承Collection而Collections是辅助于集合操作的工具类。里面包含了一些对集合操作的方法,至于每一个方法的作用建议还是读一下api...原创 2019-07-31 15:00:33 · 344 阅读 · 0 评论 -
ConcurrentHashMap底层实现原理
ConcurrentHashMap是Java并发包中提供的一个线程安全且高效的HashMap实现,ConcurrentHashMap在并发编程的场景中使用频率非常之高,本文就来分析下ConcurrentHashMap的实现原理,并对其实现原理进行分析(JDK1.7).ConcurrentHashMap实现原理 众所周知,哈希表是中非常高效,复杂度为O(1)的数据结构,在Java开发中,我...转载 2019-07-31 14:45:12 · 1327 阅读 · 0 评论 -
抽象类能使用 final 修饰吗?
答案:不能这个题目主要就是考察抽象类和final修饰符的特性。抽象类的就是要子类继承然后实现内部方法的。但是final修饰的类是不能再被继承和修改的。所以不能用final修饰。关于抽象类,可以看一下我的另一篇博客:https://blog.csdn.net/qq_35771266/article/details/96852793里面有对抽象类的讲解,我就不再重新写一次了。...原创 2019-07-22 15:21:19 · 6271 阅读 · 1 评论 -
Java 变量类型
Java的变量类型主要包含以下三种:实例变量、类变量、局部变量局部变量是定义在方法中的变量,只有在本方法内可以使用和修改。类变量是定义在方法之外的变量,该类所有方法都能使用,并且可以修改。实例变量是定义在方法之外的变量,全局都可以使用但是不能做修改。话不多说直接上代码:package com.example.schoolproject.utils;import ...原创 2019-05-15 22:19:08 · 151 阅读 · 0 评论 -
JDK与JRE的区别
JDK是Java的开发工具,它不仅提供了Java程序运行所需的JRE,还提供了一系列的编译,运行等工具,如javac,java,javaw等。JRE只是Java程序的运行环境,它最核心的内容就是JVM(Java虚拟机)及核心类库。...原创 2019-05-15 22:37:42 · 178 阅读 · 0 评论 -
== 和 equals 的区别是什么?
记住这句话就OK了:==号比较的是内存地址 equals()比较的是字符串的内容package com.example.schoolproject.utils;public class JavaTest001 { public static void main(String[] args) { //==号比较的是内存地址 || equals()比较的是字...原创 2019-05-15 22:48:34 · 158 阅读 · 0 评论 -
两个对象的 hashCode()相同,则 equals()也一定为 true,对吗?
不对,两个对象的 hashCode()相同,equals()不一定 true。首先先新建一个类来看一下重写equals和hashCode方法以后,jdk默认生成hashCode的源码package com.ms.sso.utils;import lombok.Data;import java.util.Objects;@Datapublic class MQTest ...原创 2019-06-08 15:25:52 · 37770 阅读 · 7 评论 -
final 在 java 中有什么作用?
final作为Java中的关键字可以用于三个地方。用于修饰类、类属性和类方法。特征:凡是引用final关键字的地方皆不可修改!(1)修饰类:表示该类不能被继承;(2)修饰方法:表示方法不能被重写;(3)修饰变量:表示变量只能一次赋值以后值不能被修改(常量)。...原创 2019-06-08 15:38:09 · 10818 阅读 · 0 评论 -
java 中的 Math.round(-1.5) 等于多少?
这道题目的答案是 -1.其实这道题目考察的主要知识点就是:Math.round方法的概念以及返回值类型。注意:Math的round方法是四舍五入,如果参数是负数,则往大的数如,Math.round(-1.5)=-1,如果是Math.round(1.5)则结果为2下面把源码贴出这个问题也就解决了。从源码上可以看出,Math.round(-1.5)的结果为-1.下面是代码执行的...原创 2019-06-08 15:48:02 · 10974 阅读 · 0 评论 -
String 属于基础的数据类型吗?
这道题目的答案为:不是很简单,因为Java的基本数据类型只包含八种:https://blog.csdn.net/qq_35771266/article/details/90245348这个可以看下我以前的一片博客,里面做了讲述。...原创 2019-06-08 15:58:26 · 422 阅读 · 0 评论 -
java 中操作字符串都有哪些类?它们之间有什么区别?
主要是一下三种:String、StringBuffer、StringBuilder这个知识点我个人认为还是比较重要的。特别是在项目中。先来看一下这三种操作方式的区别: String是不可变的对象,对每次对String类型的改变时都会生成一个新的对象, StringBuffer和StringBuilder是可以改变对象的。 对于操作效率:StringBuil...原创 2019-06-08 16:05:13 · 4561 阅读 · 0 评论 -
String str=“i“与 String str=new String(“i”)一样吗?
这道题目的答案是:不一样先看一下在代码中的结果不一样的原因很简单,因为他们不是同一个对象。String str="i";这句话的意思是把“i”这个值在内存中的地址赋给str,如果再有String str3="i";那么这句话的操作也是把“i”这个值在内存中的地址赋给str3,这两个引用的是同一个地址值,他们两个共享同一个内存。而String str2 = new St...原创 2019-06-08 16:29:31 · 21587 阅读 · 6 评论 -
Java使用ftp上传图片到服务器 图片损坏
目前项目开发中图片存放方式有很多。通过ftp上传到ftp服务器就是其中的一种。这两天在使用ftp上传图片时遇到了一个问题:图片上传以后需要移动文件夹。我实现的思路大概是这样的:1.先根据原图片路径找到对应的文件,拿到文件流InputStream inputStream = ftp.retrieveFileStream(new String(filePath.getBytes("U...原创 2019-06-15 12:08:12 · 2607 阅读 · 0 评论 -
java ftp工具类(图片上传、下载、重命名、移动文件夹、删除文件)
这个工具类没有进行很好的封装,如果想封装可以自己去封装加工一下,还用这个工具类里面的路径是需要自己替换的。public class FtpUtil { /* *@Description: 获取ftp连接 *@param host 服务器地址 *@param port 端口号 *@param username 用户名 ...原创 2019-06-15 12:16:32 · 2674 阅读 · 0 评论 -
java 中 IO 流分为几种?
这个题要从流的角度去划分:按照流的流向分,可以分为输入流和输出流; 按照操作单元划分,可以划分为字节流和字符流; 按照流的角色划分为节点流和处理流。所有流的基类InputStream/Reader: 所有的输入流的基类,前者是字节输入流,后者是字符输入流。 OutputStream/Writer: 所有输出流的基类,前者是字节输出流,后者是字符输出流。...原创 2019-07-06 13:30:58 · 8276 阅读 · 1 评论 -
Java 普通类和抽象类有哪些区别?
说一下个人的见解吧,我的见解不一定全对。(这个问题在前面的博客就被证实了,不过存在的错误被指出来以后我都修正了。)如有错误欢迎指正,大家相互学习进步~我觉得他们主要有一下不同1.抽象类可以含有抽象方法(这里有个问题要注意一下,抽象类也可以不含有抽象方法)2.抽象类必须要有abstract关键词修饰3.抽象类不能被实例化,必须通过其非抽象子类(就是这个抽象类的子类,但是这个子类不能是...原创 2019-07-24 19:01:42 · 2752 阅读 · 0 评论 -
抽象类必须要有抽象方法吗?
答案是:不必须这道题考察的是抽象类的知识:抽象类必须有关键字abstract来修饰。 抽象类可以不含有抽象方法 如果一个类包含抽象方法,则该类必须是抽象类...原创 2019-07-24 19:05:41 · 16881 阅读 · 0 评论 -
抽象类必须要有抽象方法吗?
答案是:不必须。这个题目主要是考察对抽象类的理解。说一下我个人的理解吧。1.如果一个类使用了abstract关键字修饰,那么这个类就是一个抽象类。2.抽象类可以没有抽象方法3.一个类如果包含抽象方法,那么这个类必须是抽象类,否则编译就会报错。4.最关键的一点就是如果一个类是抽象类,那么这个类是不能被实例化的。 如下: public abstract cl...原创 2019-07-22 14:36:51 · 16075 阅读 · 0 评论 -
Java的基本数据类型
基本摘抄菜鸟教程,为了后面方便使用自己整理记录一下。Java有八种基本数据类型。(四大整,两小浮。一布尔,一字符)六种数字类型(四个整数型,两个浮点型),一种字符类型,还有一种布尔型。byte:byte 数据类型是8位、有符号的,以二进制补码表示的整数; 最小值是-128(-2^7); 最大值是127(2^7-1); 默认值是0; byte 类型用在大型数组中节约空...转载 2019-05-15 21:34:09 · 267 阅读 · 0 评论