Java SE基础 模块
java基础栏目
神韵499
记录、创造与成就感也许是我写博客的一个原因。当然,转载也是我对知识存储的渴望,我对别人的知识点的赞同,这也是一个原因。但是,每天早上起来在自己博客里回味、每天早上在博客海洋里进步,每天在过去的知识里又学到了新的知识,有了新的认识。这才是我写博客最大的原因
展开
-
总结下文件的快速读取四种方式---小数组+FileInputStream、小数组+BufferedInputStream、BufferedReader字符流按行和小数组+BufferedReader读
一、定义小数组+FileInputStream、小数组+BufferedInputStream、BufferedReader字符流按行和小数组+BufferedReader读取简单说明首先,对于相关知识点不是很理解的,推荐花几分钟时间看下我之前写的两篇文章,对这些有个大概了解。参考我之前写的一篇文章---字节流介绍 参考我之前写的一篇文章---字符流介绍解释一下相关类类 相关解释 FileInputStream 输入流,read默认读取一个字节 Buffe原创 2020-07-17 15:06:58 · 2006 阅读 · 0 评论 -
System.out简单解释
out变量声明就是PrintStream类先附上System类中,out变量源码: public final static PrintStream out = null;抛出疑问?最终静态变量赋值null,最后是如何赋值为PrintStream类的或者说指向PrintStream!当然,对于openjdk来说,是由点区别的,它里面是直接out = new N...原创 2019-11-05 15:56:56 · 8165 阅读 · 0 评论 -
三目混合不同数据杂乱知识
三目不同类型混合总结整型与浮点数据类型混合整型直接向浮点看齐基本数据类型byte char short int long之间混合1、数据类型是否相同,相同返回类型确定2、数据类型不同,看编译期能否识别两个类型大小范围3、不能识别则取最大类型4、能识别 看两个类型范围,大朝小看5、范围超,取大类型,否则取小 非全是基本数据类型1、xx? i...原创 2019-11-05 13:00:29 · 206 阅读 · 0 评论 -
多线程基础三(重)
一、什么是进程、线程?进程:操作系统进行资源分配的最小单元线程:操作系统调度CPU的最小单元,线程都拥有各自的计数器、栈和局部变量等属性,并且还可以访问共享的内存变量。关系:一个进程可以创建多个线程二、CPU核心数和线程数的关系?假设内核2,逻辑处理器4能并行执行线程数,主要取决于逻辑处理器,4个逻辑处理器可以并行处理4个线程。但是可以并发处理几千个线程都没问题(...原创 2019-10-17 17:02:29 · 207 阅读 · 0 评论 -
HashMap源码重点分析
目录一、为啥要使用数组+链表+红黑树的结构二、哈希算法及put过程部分分析三、哈希扩容四、死锁发生一、为啥要使用数组+链表+红黑树的结构数组+链表(jdk1.8之前) 数组+链表+红黑树(红黑树是jdk1.8引进,当链表长度 >= 8即转为红黑树,这里具体不研究红黑树)数据结构特点及为啥使用这种结构数组:查找非常快。 链表:增加/删除非常快。查找效率不高。...原创 2019-07-11 11:39:49 · 320 阅读 · 5 评论 -
吃透String的intern方法
三种常量池1、常量池版本变化:jdk1.6及以前,运行时常量池在方法区中 jdk1.7,运行时常量池移到堆中去了 jdk1.8,运行时常量池移到元空间中,取消了方法区(永久代)2、下面是jdk1.8的三种常量池类文件中的常量池:存在class文件中,所处区域堆中,内容概要符号引用和字面量,class常量池是在编译的时候每个class都有的,在编译阶段,存放的是常量的符号引用。...原创 2019-06-05 19:12:40 · 447 阅读 · 0 评论 -
到底几个产生String对象
转自:https://www.cnblogs.com/timecloud/p/6555868.html几个概念:堆(heap):对象存放在堆中;当子程序结束运行时,对应的堆空间不会释放。栈(stack):基本类型和对象的应用存放在栈中;当子程序结束运行时,对应的栈空间会释放。方法区:与java堆一样,是各个线程共享的内存区域,被描述为java堆的一个逻辑部分。运行时常量池:是方法区的一部分。当...转载 2019-06-05 17:38:44 · 292 阅读 · 0 评论 -
idea常用快捷键设置(改为eclipse相似)
转自:原博客我按照这套流程走完,发现第二个eclipse,舒服啊 idea常用快捷键设置(改为eclipse相似)目录idea常用快捷键设置改为eclipse相似目录1打开idea点击上方菜单栏中的File2在弹出的setting页面中左侧导航中选择Keymap在keymaps下拉列表中选择Eclipse如果想要使用这个快捷键风格则点击右侧的copy按钮...转载 2019-05-28 18:15:08 · 1305 阅读 · 0 评论 -
linux jdk安装+配置+测试 多种方式实现 非常详细
两种安装方式介绍:第一种自己配置环境变量,解压缩推荐使用。 第二种是通过yum命令安装,不需要自己配置环境,比较简单。以下所有操作都在Xshell6下执行,至于怎么连接虚拟机,请参考博客:4步图文教你如何用Xshell6连接虚拟机一、通过压缩包导入1、通过在线下载或导入磁盘已经下载好的压缩包下面演示导入磁盘已经下载好的压缩包第一种方式:下载Xftp下载成...原创 2019-05-26 14:53:32 · 734 阅读 · 0 评论 -
用集合实现模仿 栈和队列
转自博客:https://blog.csdn.net/u011541946/article/details/80166648 本篇先来了解两种数据结构,什么是栈,什么是队列它们各自的特点,然后利用LinkedList来分别用代码模拟两种数据结构的特点。1.什么是栈 ...转载 2019-05-25 08:44:36 · 285 阅读 · 0 评论 -
String StringBuffer StringBuilder三者区别
1 String (1) String的创建机理由于String在Java世界中创建的过于频繁,Java为了避免在一个系统中产生大量的String对象,引入了字符串常量池。其运行机制是:创建一个字符串式,首先检查池中是否有值相同的字符串对象,如果有则...转载 2019-05-20 12:41:32 · 242 阅读 · 0 评论 -
java 反射和new的区别
关于java 反射和new的区别,在这里我不做多讲,因为网上有大把资料,描述得很详细。今天我只讲一点,为什么要用反射?直接用new不行么?干嘛弄得那么麻烦!1.基本上效果差不多,但是new对象,无法调用该类里面私有的东西,反射反之,具体怎么做请参考java AIP,不过反射需要以牺牲性能做代价。2.在不知道类名的情况下,你怎么去new?我相信很多人看到这句话都迷糊了(新手),肯定有这样的疑问,不知...转载 2019-05-31 20:46:11 · 626 阅读 · 0 评论 -
Object的9大公有方法
转自:https://www.cnblogs.com/zhousysu/p/5483795.html [Java]Object有哪些公用方法? 1.clone方法保护方法,实现对象的浅复制,只有实现了Cloneable接口才可以调用该方法,否则抛出CloneNotSupportedException异常。主要是JAVA里除了8种基本类型传参数是值传递,其他...转载 2019-06-14 07:57:34 · 217 阅读 · 0 评论 -
java 抽象与接口
抽象abstract定义抽象类:abstract class XX{}抽象方法:定义:abstract 返回值方法名(); 没有方法体 修饰符可以用public、protect属性:没有限制抽象类特征:不可以初始化,但是有默认无参构造器,一个抽象类中可以没有抽象方法,但是有抽象方法的类一定是抽象类。不可以用static、final修饰方法。子类继承抽象类必须要实现所有的抽象...原创 2019-06-03 09:54:35 · 121 阅读 · 0 评论 -
一道题 测试你对多态的了解?
题目:根据题目,写出自己的答案/** * 多态练习 * @author * */public class MoreModule { public static void main(String[] args) { A a1 = new A(); A a2 = new B(); B b = new B(); C c = new C(); D d = new ...原创 2019-06-04 14:52:31 · 131 阅读 · 0 评论 -
时间操作注意点、应用及格式转换
注意页面输出标准时间:yyyy-MM-dd HH:mm:ss,必须得转为字符串 字符串转回Date,就算按照格式转换结果还是按照Date的格式!!! 输出24小时制的时间格式:yyyy-MM-dd HH:mm:ss 输出12小时制的时间格式:yyyy-MM-dd hh:mm:ss 一般都是使用util下的Date应用1、<%%>中使用,页面输出标准时间...原创 2019-07-02 12:05:14 · 160 阅读 · 0 评论 -
多线程基础一
目录一、概念(掌握)二、多线程并行和并发的区别(掌握)三、Java程序运行原理和JVM的启动是多线程的吗(掌握)四、多线程程序实现的方式(掌握)五、匿名内部类实现线程的两种方式(掌握)六、获取线程名字和设置名字七、休眠线程(掌握)八、守护线程九、加入线程十、礼让线程十一、线程的优先级十二、同步代码块(掌握)十三、同步方法(掌握)十四、线程安全...原创 2019-08-22 13:03:19 · 816 阅读 · 0 评论 -
多线程基础二
目录一、单例模式二、Runtime就是饿汉式单例模式实现的三、两个线程间的通信(掌握)四、三个及以上的线程通信(掌握)五、jdk1.5以后ReentrantLock可重入锁六、线程组七、线程的5种状态(掌握)八、线程池(重点)九、多线程程序实现的方式3十、线程的interrupt、interrupted、isInterrupted一、单例模式1、共有...原创 2019-08-22 17:27:50 · 353 阅读 · 0 评论 -
JsonUtils工具类,拿来使用即可
1、对象--json使用方法:objectToJson2、json--对象使用方法:jsonToPojopackage com.xue.bbs.common;import java.util.List;import com.fasterxml.jackson.core.JsonProcessingException;import com.fasterxml.jackson....原创 2019-09-24 16:14:45 · 966 阅读 · 0 评论 -
StringUtils 的isNotEmpty和isNotBlank区别
使用StirngUtils的api需要引入commons依赖<dependency><groupId>commons-lang</groupId><artifactId>commons-lang</artifactId><version>2.6</version></dependency>...原创 2019-09-24 15:57:22 · 710 阅读 · 0 评论 -
一分钟搞懂Java值传递和引用传递
转自:什么是值传递和引用传递 一、基本类型和引用类型的理解Java中的数据类型分为两种为基本类型和引用类型。1、基本类型的变量保存原始值,所以变量就是数据本身。 常见的基本类型:byte,short,int,long,char,f...转载 2019-05-09 10:32:45 · 328 阅读 · 0 评论 -
IO流三 字符流
字符流是什么?字符流是可以直接读写字符的IO流字符流读取字符,就要先读取到字节数据,然后转为字符,如果要写出字符,需要把字符转为字节再写出基本属性FileReader fr = new FileReader("文件");创建输入流对象,关联需要操作的文件。fr.read(),每次读一个字符,是因为项目默认的码表(如GBK,规定中文第一个字节是负数,读的时候当第一个字节是负...原创 2019-04-15 10:55:16 · 273 阅读 · 0 评论 -
Set集合
一、Set集合介绍Set的特点:无索引,无顺序(存取不一致),不可以重复,可以用迭代器,增强for循环迭代。相比之下,List完全相反(有索引,有顺序,可以重复)不过通过重写方法,都可以改变其特点二、HashSet1、HashSet实现了Set接口特点:无序(存取不一致),不重复 底层数据结构:哈希表(链表和数组的结合) 数据存取快2、创建一个HashSet集合Ha...原创 2019-03-03 20:13:09 · 451 阅读 · 0 评论 -
List集合与泛型(详细篇)
一、泛型的概念 泛型就是类型参数化,处理的数据类型不是固定的,而是可以作为参数传入二、泛型的好处更好的安全性更好的可读性.语言和程序设计的一个重要目标是将bug尽量消灭在摇篮里,能消灭在写代码的时候,就不要等到代码写完,程序运行的时候。只使用Object,代码写错的时候,开发环境和编译器不能帮我们发现问题,看代码:Pair pair = new Pair(&quot;老马&quot;,1); In...原创 2019-02-24 11:29:12 · 19007 阅读 · 1 评论 -
一分钟读懂java equals、==
对于非自定义对象equals 方法是String类从它的超类Object中继承的, 被用来检测两个对象是否相等,但是String类重写后多了个比较字符串相等的if语句,所以String类是先比较对象引用是否相同,相同返回true,对象不同,再比较字符串值是否相同,相同返回true。对于String字符串变量来说,使用“==”和“equals()”方法比较字符串时,其比较方法不同。“==”比...原创 2019-02-22 20:47:05 · 184 阅读 · 0 评论 -
LinkedList集合
1、LinkedList集合的原理 LinkedList底层是用链表实现2、LinkedList集合的使用方法LinkedList list = new LinkedList();//增加在链表头部增加节点list.addFirst("a");//增加在链表尾部增加节点list.addLast("b");//获取链表头部元素list.getFirst();//获取链表尾部元素...原创 2019-02-07 12:08:35 · 254 阅读 · 0 评论 -
集合(Collection)
一、集合的由来 数组的长度是固定的,当添加的元素超过了数组的长度时需要对数组重新定义,太麻烦,因此Java内部给我们提供了集合类,能存储任意对象,长度是可以改变的,随着元素的增加而增加,随着元素的减少而减少。![集合的](https://img-blog.csdnimg.cn/201901092044439.png?x-oss-process=image/watermark,type_ZmF...原创 2019-02-07 11:34:43 · 178 阅读 · 0 评论 -
Java集合和数组的区别、选用及其原因
集合(Collection)和数组(Array)一、集合和数组的区别区别1:数组既可以存储基本数据类型,又可以存储引用数据类型,基本数据类型存储的是值,引用数据类型存储的是地址值。 集合只能存储引用数据类型(对象)。集合也能存储基本数据类型(有点矛盾,看后句),但是在存储的时候会自动装箱变成对象。区别2:数组长度是固定的,不能自动增长。 集合的长度是可变的,可以根...原创 2019-01-09 20:33:06 · 7957 阅读 · 0 评论 -
Java中浮点型数据Float和Double进行精确计算的问题
Java中浮点型数据Float和Double进行精确计算的问题 一、浮点计算中发生精度丢失&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 大概很多有编程经验的朋友都对这个问题不陌生了:无论你使用的是什么编程语言,在使用浮点型数据进行精确计算时,你都有可能遇到计算结果出错的情况。来看下面的例子。//原创 2019-01-09 19:25:42 · 503 阅读 · 0 评论 -
javac运行失败的原因
前述,虽然对jdk的配置比较熟练,但是今天遇到这个坑也是够惨的,反复检查并重新配置了N次,还是没找到原因。 以下是我的配置原创 2018-12-25 09:28:53 · 9463 阅读 · 5 评论 -
史上最全的Java面试题
疯狂创客圈:如果说Java是一个武林,这里的聚集一群武痴, 打磨着九阳神功和独孤九剑,欢迎砸场子QQ群链接:疯狂创客圈QQ群如下题目如果全部能搞定,至少涨薪50%:[第一部分] 面试要领[第1题] 流程必知必会[第2题] JDK源码[第二部分] 类和对象[第二篇] 面向对象基础[第1题] 面向对象是什么?[第2题] 类加载的过程[第3题] 类加...转载 2019-03-03 20:33:36 · 629 阅读 · 0 评论 -
TreeSet集合的两种排序方式
java中接口之间的关系 Collection<----继承---Set<----继承----SortedSet<----实现---TreeSetTreeSet 实现SortedSet接口,此接口用于排序操作,因此该接口的实现类具有排序能力,下面主要通过小工具进行说明。一.首先看一...转载 2019-03-06 21:48:27 · 507 阅读 · 0 评论 -
异常
一、异常概念异常就是Java在程序运行时发生的错误。二、异常分类Throwable Error:服务器宕机,数据库崩溃,不是程序员编写代码所产生的错误。 Exception(异常) RuntimeException:编写代码产生错误,在运行时产生异常,需要我们去改写代码,这是我们需要掌握。此...原创 2019-03-19 18:18:40 · 146 阅读 · 0 评论 -
什么是orm
ORM(Object Relational Mapping 对象关系映射)是一种为了解决面向对象与关系数据库存在的互不匹配的现象的技术。使用描述对象和数据库之间映射元数据,对象和关系数据库属性匹配,进行一系列的增删改查结果关系映射。...原创 2019-04-09 16:46:02 · 805 阅读 · 0 评论 -
IO流二 字节流
一、概念字节流可以操作任何数据,因为在计算机中任何数据都是以字节的形式储存的二、字节流之FileInputStream、FileOutputStream类1、FileInputStream输入流,不使用小数组每次只能读取一个字节(is.read(),返回-1则说明文件被读完)构造方法,可以传路径,可以传封装好的File对象对于read()为啥返回int,而不是byte作个解释...原创 2019-03-22 13:56:08 · 572 阅读 · 0 评论 -
Java之网络编程
一、网络编程的介绍网络编程就是通过Socket进行相关的网络通信,涉及到的知识有ip、端口号、网络协议等等。二、网络编程三要素1、IP每个设备在网络中唯一的标识(ipconfig查看本机的ip, ping ip/域名地址 测试连接)IP地址分类:Ipv4 4个字节组成 4个0-255 总43亿 2011年已经用尽Ipv6 8个字节组成 每组4个16进制2、端口...原创 2019-03-18 20:14:00 · 118 阅读 · 0 评论 -
IO流一 介绍
IO流介绍1、IO流用来处理设备之间的数据传输 Java对数据的操作是通过流的方式 Java用来操作流的类都在IO包中2、流按流向分为两种: 字节流:字节流可以操作任何数据,因为在计算机中任何数据都是以字节的形式储存的 字符流:字符流只能操作纯字符数据,比较方便3、IO流常用父类 字节流的抽象父类 I...原创 2019-03-22 11:46:50 · 187 阅读 · 0 评论 -
File类介绍
一、概念将文件或者目录封装到一个类,这个类就是File类,然后可以对这个类对象进行各种操作,增删改查等等,也就是直接与计算机相关联的操作。二、File类的构造方法1、File(String pathname)根据一个目录或文件得到一个File对象File file = new File("路径"); 如:new File("D://file.txt")2、File(...原创 2019-03-22 11:17:11 · 242 阅读 · 0 评论 -
反射详细篇
一、反射介绍反射机制:Java反射机制在运行状态,对于任意一个类,都能够获取到这个类的所有属性和方法,对于任意一个对象,都能够调用它的任意一个方法和属性(包括私有的方法和属性),这种动态获取的信息以及动态调用对象的方法的功能就称为java语言的反射机制。通俗点讲,通过反射,该类对我们来说是完全透明的,想要获取任何东西都可以。(面试讲:通过反射,类对我们来说都是完成透明的,可以动态的获取类的...原创 2019-03-12 15:25:21 · 297 阅读 · 0 评论 -
一览集合差异篇(全)
一、集合总结篇1、Collection---单列集合 (1)、List------------有序,有索引,可以重复 ArrayList----------------------底层是数组,线程不安全,改查快,增删慢 ...原创 2019-03-07 19:50:23 · 399 阅读 · 0 评论