JAVA SE学习笔记
文章平均质量分 71
codingCoge
人生是场马拉松
QQ:
1115106468
展开
-
java常见的三种序列化
本文来自:《码出高效:Java开发手册》序列化:内存中的数据对象只有转换为二进制流才可以进行数据持久化和网络传输。将数据对象转换为二进制流的过程称为对象的序列化( Serialization )。反之,将二进制流恢复为数据对象的过程称为反序列化( Deserialization )。序列化需要保留充分的信息以恢复数据对象,但是为了节约存储空间和网络带宽,序列化后的二进制流又要尽可能小。...转载 2018-12-29 15:20:37 · 1120 阅读 · 0 评论 -
Java学习笔记--异常处理(传智播客的总结)
背景: 我们的java程序也是会存在某些不正常 的情况的,这些不正常的 情况我们就统称异常。(还有一种是IO流的异常 要包装成运行时异常) 异常体系: ———-| Throwable 所以异常或者错误类的超类 ————–|Error 错误 错误一般是用于jvm或者是硬件引发的问题,所以我们一般不会通过代码去处理错误的。 ————–|Exception 异...原创 2018-04-27 11:15:21 · 308 阅读 · 0 评论 -
java学习笔记--String字符串,StringBuffer和StringBuilder总结
String 先来介绍一下字符串的存储 字符串相加是通过StringBuffer类的append()和toString()实现的, 而toString()返回的字符串是通过构造函数创建的 强调: 两个字符串常量相加, 在编译的时候之间改为一个字符串常量. 而字符串引用相加则是调用StringBuffer类的append()和toString() 这个时候就会在堆中创建一个新的...原创 2018-04-27 10:58:51 · 337 阅读 · 0 评论 -
java是值传递还是引用传递
我只是个搬运工 这个博主讲的很详细,挺好的 博主转载 2018-04-27 10:08:02 · 125 阅读 · 0 评论 -
java学习笔记--内部类:(参考java核心技术卷1and转载)
做JavaEE即网站的 基本不接触内部类做安卓的 基本天天接触内部类内部类是定义在另一个类中的类 可以分为这四类: 局部内部类 成员内部类 与外部类有直接联系 静态内部类 与外部类没有直接联系 匿名内部类 特点: 1. 内部类可以访问外部类定义所在的作用域的数据,包括私有的数据 2. 内部类可以对同一个包中的其他类隐藏 设计成pr...原创 2018-04-27 09:28:46 · 200 阅读 · 0 评论 -
win10下java的jdk安装和环境变量配置
首先需要去JAVA官网下载jdk http://www.oracle.com/technetwork/java/javase/downloads/jdk9-downloads-3848520.html 下载的是jdk 9 与以往的环境配置不一样 jdk是java的核心 是java软件的开发工具箱 jdk是开发环境 主要有开发工具 jdk安装后自带会提供一个java运行环境 JR...原创 2018-03-09 00:30:59 · 419 阅读 · 0 评论 -
java学习笔记--增强for循环
什么是增强for循环?原来的for循环是这样子的: for(int i=0;i<10;i++)那我们来看一下增强for循环: for(object a:x)//不只是object 数组存储的是什么类型的就填什么类型 x是数组或者集合里面是Interator迭代器实现的 注意:遍历的时候不能用集合增删元素 只能通过迭代器进行操作因为迭代器创建的时候会创...原创 2018-04-26 11:31:52 · 280 阅读 · 0 评论 -
设计模式(单例模式,工厂模式,装饰者设计模式,适配器模式)
问个问题:什么是模式? 模式:模式就是解决 一类 问题的固定步骤 。单例设计模式:保证一个类在内存中只有一个对象。单例设计模式的步骤: 饿汉单例设计模式 1. 私有化构造函数。 2. 声明本类的引用类型变量,并且使用该变量指向本类对象。 3. 提供一个公共静态的方法获取本类的对象。懒汉单例设计模式: 1. 私有化构造函数。 2....原创 2018-04-25 21:06:57 · 695 阅读 · 0 评论 -
Java命名规范(通用)
类的名字首字母要大写 例如:class Student如果是多个单词组成也要每个单词的首字母大写 例如:class StudentOne工程名和类名的命名方式一致(不能有中文)包名都要小写 例如:xx.zz.aa成员变量首字母要小写 如果是多个单词组成首字母小写,接下来单词的首字母大写 例如:int student; int studentOne;方法的命名和成员变量命名方式...原创 2018-04-25 20:36:18 · 535 阅读 · 0 评论 -
编码问题(总结网络的)
什么是编码? 计算机中存储的都是二进制,但是要显示的时候,就是我们看到的却可以有中国 ,a 1 等字符 计算机中是没有存储字符的,但是我们却看到了。计算机在存储这些信息的时候,根据一个有规则的编号,当用户输入a 有a对映的编号,就将这个编号存进计算机中这就是编码。 对应的有编码表下面有介绍计算机只能识别二进制数据。 为了方便应用计算机,让它可以识别各个国家的文字。就将各个...原创 2018-04-25 11:29:09 · 165 阅读 · 0 评论 -
1. 删除一个非空的目录 2. 移动一个非空的目录到另一个地方(剪切)。
// 1,删除一个非空的目录。并加强健壮性 private static void deleteFile(File file) { if (!file.exists()) { System.out.println("路径不存在"); return; } if (!file.isDirectory...原创 2018-04-25 11:12:54 · 1466 阅读 · 0 评论 -
java学习笔记--常用类(System,Runtime,date类, Math 数学类,Random 随机数类 )
System类 System.arraycopy(srcArr, 1, destArr, 0,4); 重要 数组间赋值 集合的时候会用到 System.exit(0)正常退出 非0 异常退出 一般都是tyr中exit(0) catch中 exit(非0) System.currentTimeMillis()当前的系统时间 从1971开始 的毫秒单位 重要 S...原创 2018-04-27 15:03:00 · 264 阅读 · 0 评论 -
网络编程基础---UDP
上一篇博客主要是为了这一部分服务的,最近学到网络编程部分 刚好计算机网络也讲到ip地址 也就恶补了一些IP传输的知识。现在正式来总结一下UDP和TCP两大传输协议吧网络通讯的协议:udp通讯协议tcp通讯协议。网络通讯的三要素: 1. IP 传输的源地址和目标地址 2. 端口号...原创 2018-05-05 16:18:32 · 319 阅读 · 0 评论 -
Java基础常用API(转载)
本篇介绍java基础中常用API使用,当然只是简单介绍,围绕重要知识点引入,巩固开发知识,深入了解每个API的使用,查看java API文档是必不可少的。一、java.lang包下的APIJava常用基础包,在开发中会自动导入到代码环境中,不需要import。1.基本数据类型/包装类(1)基本数据类型:byte、short、int、long、float、double、char、...转载 2018-05-08 16:43:59 · 338 阅读 · 0 评论 -
java简单复习(杂)
终于把基础的大致学的差不多了 不够的 不深的以后再来补。今天照着视频复习一遍,也算是个小总结 纯粹记录 到时候自己回头过来看看 不是干货 都是湿货。continue: 跳过本次循环语句,继续下一次循环。continue的作用范围: 只能适用于循环语句。一旦执行了continue语句,那么在循环体内continu...原创 2018-05-08 15:07:50 · 221 阅读 · 0 评论 -
Java学习笔记--内存划分 堆栈方法区
浅理解: 转载自网络,原文点此 这两天看了一下深入浅出JVM这本书,推荐给高级的java程序员去看,对你了解JAVA的底层和运行机制有 比较大的帮助。 废话不想讲了.入主题: 先了解具体的概念: JAVA的JVM的内存可分为3个区:堆(heap)、栈(stack)和方法区(method)堆区:1.存储的全部是对象,每个对象都包含一个与之对应的class的信息。(clas...转载 2018-04-28 19:37:52 · 1008 阅读 · 0 评论 -
Java 7 try-with-resources 代替 try-finally
转载自:http://www.cnblogs.com/IcanFixIt/p/8142615.htmlJava类库中包含许多必须通过调用close方法手动关闭的资源。 比如InputStream,OutputStream和java.sql.Connection。 客户经常忽视关闭资源,其性能结果可想而知。 尽管这些资源中有很多使用finalizer机制作为安全网,但finalizer机...转载 2018-05-13 21:48:59 · 723 阅读 · 0 评论 -
Java学习笔记--可变参数
可变参数的格式:数据类型... 变量名可变参数要 注意的细节: 1. 如果一个函数 的形参使用上了可变参数之后,那么调用该方法的时候可以传递参数也可以不传递参数。 2. 可变参数实际上是一个数组对象。 3. 可变参数必须位于形参中的最后一个参数。 4. 一个函数最多只能有一个可变 参数,因为可变参数要位于形参中最后一个位置上。public c...原创 2018-04-28 16:23:29 · 103 阅读 · 0 评论 -
IO流学习总结(下)---打印流
之前打印信息需要使用OutputStream但是这样,所有数据输出会非常麻烦,String–>byte[],打印流中可以方便进行输出, 它的打印方法可以保证数值的表现形式不变。写的是什么样子,目的地就是什么样子 而且不抛异常 实际上 它是对FileoutputStream类的功能进行了包装一下 打印流的构造函数可以直接传入FileOuputStream的实例 意思就是说所有的输出是向文...原创 2018-04-25 09:56:37 · 220 阅读 · 0 评论 -
动态代理之: com.sun.proxy.$Proxy0 cannot be cast to 问题
Exception in thread "main" java.lang.ClassCastException: com.sun.proxy.$Proxy0 cannot be cast to Father.FatherInter at Father.Main.main(Main.java:13)不知道写动态代理的时候 你们有没有被这个问题困扰过 反正我是有的 不过和网上的问题不...原创 2018-05-13 00:40:32 · 20538 阅读 · 5 评论 -
Java学习笔记--泛型(巨细)
泛型: 泛型在java基础中属于重要的一部分,掌握泛型是必要的。接下来以我的理解来解释一下 背景:编译器是先通过检查代码中泛型的类型 再进行类型擦除 再进行编译的 什么是泛型, 什么时候需要泛型, 泛型怎么用, 泛型注意的问题。 目前我接触的泛型应用就是集合使用泛型达到 一个集合里面只有一种类型的数据 泛型的好处: 1. 将运行时的异常...原创 2018-04-27 23:52:38 · 261 阅读 · 0 评论 -
网络编程--基础TCP
udp是一个不可靠(数据包可能会丢失)的协议什么情况下数据包会出现丢失呢? 1.带宽不足 。 2.cpu的处理能力不足。如果这个时候要传输一部电影怎么办 随便丢失一个数据就GG 这个时候 TCP就派上用场了 之前有介绍过TCP的三次握手 这次赋上图来看看: TCP通讯协议特点: 1. tcp是基于IO流进行数据 的传输 的,面向连接。 ...原创 2018-05-06 01:13:06 · 330 阅读 · 0 评论 -
java学习笔记--枚举类(综合网络用法)
什么是枚举类? 个人理解就是一个 定义了一个规范 你只能从固定的一些值中取值,限定了范围 比如性别,四季就可以用枚举类 而且是类型安全的 意思就是 你不能传入int之类的其他变量给枚举类 枚举类可以定义在一个类里 也可以单独定义 使用enum关键字 枚举类的定义格式:enum 类名{ //枚举值}枚举要注意的细节: 1. 枚举类也是一个特殊的类。 ...原创 2018-04-27 20:41:40 · 212 阅读 · 0 评论 -
IO流学习总结(下)---转换流(重要)
参考[大佬的博客][https://blog.csdn.net/huang_xw/article/details/7340904] 分为两种: InputStreamReader 字节流转字符流 OutputStreamWriter 字符流转字节流 *写入数据–>内存中的字符数据–>字符流–>OutputStreamWriter–>字...原创 2018-04-25 11:09:32 · 175 阅读 · 0 评论 -
IO流学习总结(下)---序列化 反序列化
序列化 反序列化序列化目的:序列化一般是指把结构化的对象变成无结构的字节流,便于存储、传输 对象的序列化: 将内存中的对象直接写入到文件设备中 对象的反序列化: 将文件设备中持久化的数据转换为内存对象 序列化前提:如果对象需要被写出到文件上,那么对象所属的类必须要实现Serializable接口。 Serializable接口没有任何的方法,是一个标识接口而已。 ...原创 2018-04-25 00:56:00 · 204 阅读 · 0 评论 -
IO流学习总结(中)-----操作文件的知识梳理
以下都是针对 txt等文本文件的操作 还记得上篇着重介绍的File吗 再来重温一遍 File就是文件的路标意思 带着我们找到这个文件或者文件夹的所在地 而且它还可以是不存在的抽象路径介绍以前 还是老样子 先来个整体概括有个印象: 此处输入输出是针对程序而言的 字节流 FileOutputStream 输出通道 向文件输出数据 FileInputStream...原创 2018-04-24 01:02:44 · 581 阅读 · 0 评论 -
IO流学习笔记--操作文件
最近几天都在学习IO流 本来想着昨天晚上写完这篇总结的 太困也就作罢 今天也是满满4节课 终于拖到晚上有了时间来写这篇博客.接下来的讨论我分为外部和内部来操作一个文件 整体概述一下文章内容 体系 外部: 即对文件整体进行操作,比如删除,重命名,剪切,获取文件路径之类的操作 内部: 即对txt之类的文本文件的内容操作,比如读写,添加之类的操作 区别 前者是以文...原创 2018-04-24 00:27:06 · 235 阅读 · 0 评论 -
JAVA IO流 字节流 字符流 缓冲流的注意点和效率
总结: stringBuilder的tostring返回的是new出来的字符串 如果没有那么返回空字符串而不是null 字符流:缓冲流内部都维护了一个数组 不是缓冲流的只有字符流的writer维护了一个数组 缓冲流中 只有字符流扩展了方法 reader扩展了readLine write扩展了newLine 但是字节流的话 缓冲流没有...原创 2018-04-18 21:11:14 · 1507 阅读 · 0 评论 -
线程(杂)
线程: 单核的cpu在一个时间片中只能执行一个应用程序 各个程序其实在做cpu的资源真多战而已 cpu做了快速的切换动作 疑问 :线程负责了代码 的执行,我们之前没有学过线程,为什么代码可以执行呢? 运行任何一个java程序,jvm在运行的时候都会创建一个main线程执行main方法中所有代码。 一个java应用程序至少有几个线程? 至少有两个线程, 一个是主线程负责m...原创 2018-04-13 09:53:34 · 135 阅读 · 0 评论 -
各种安全问题(杂)
StringBuilder 的方法不是线程安全的 由于 StringBuilder 相较于 StringBuffer 有速度优势,所以多数情况下建议使用 StringBuilder 类。然而在应用程序要求线程安全的情况下,则必须使用 StringBuffer 类。 ArrayList是不同步的 线程不安全 LinkedList 不同步的 线程不安全 HashSet也是不安全的 Hash...原创 2018-04-13 09:51:41 · 117 阅读 · 0 评论 -
泛型(比较杂 后期整理)
泛型: 泛型传参得有继承关系 泛型重写有桥方法 泛型会擦除 集合getclass 是同一个 但是集合内元素getclass 用get返回的不是Object 因为内部强转 泛型不能创建泛型数组 泛型有通配符来限制传参的范围 泛型有T的模板 泛型通配符中传参中的 添加(类型安全问题) get操作(只有super有权限添加 其他的只能查看) 泛型子类父类继承 对应有重写内容 子类T...原创 2018-04-13 09:50:49 · 118 阅读 · 0 评论 -
JAVA学习笔记--类型转换(父类子类 Object 基本类型 String) 拆装箱 包装类
最近一段时间忙着学习JAVA,本来net学的也不怎么好,趁着这个机会转下方向学习JAVA。 不过.NET core的开源还是有点搞头的,微软了解一下。 接下来几天我也会陆续写一些内容关于线程和集合等方面,现在让我来讲一下类型转换的内容吧。 衍生知识: 1.基本类型比较用== 而对象比较用equals 如果改写了equals 那么也要顺便改写 ha...原创 2018-04-05 21:51:24 · 511 阅读 · 0 评论 -
Java中的String为什么是不可变的? -- String源码分析
什么是不可变对象?众所周知, 在Java中, String类是不可变的。那么到底什么是不可变的对象呢? 可以这样认为:如果一个对象,在它创建完成之后,不能再改变它的状态,那么这个对象就是不可变的。不能改变状态的意思是,不能改变对象内的成员变量,包括基本数据类型的值不能改变,引用类型的变量不能指向其他的对象,引用类型指向的对象的状态也不能改变。区分对象和对象的引用对于Java初学者,...转载 2018-05-08 20:34:08 · 125 阅读 · 0 评论 -
IO流学习总结(下)---配置文件
Properties 配置文件:将软件中可变的部分数据可以定义到一个文件中,方便以后更改,该文件称之为配置文件。 优势: 提高代码的维护性。 Properties继承map是键值对类型 但是集合中的键值对都是String类型 且没有泛型 线程安全的 都是转换成string 如果加入的是其他类型的 就会报类型强转问题 Properties(配置文件类): 主要用于生产配置文件与读...原创 2018-04-25 00:54:32 · 187 阅读 · 0 评论 -
java学习笔记--反射( 后期学习补充用法)
类字节码文件是在硬盘上存储的,是一个个的.class文件。我们在new一个对象时,JVM会先把字节码文件的信息读出来放到内存中,第二次用时,就不用在加载了,而是直接使用之前缓存的这个字节码信息。 字节码的信息包括:类名、声明的方法、声明的字段等信息。在Java中“万物皆对象”,这些信息当然也需要封装一个对象,这就是Class类、Method类、Field类。 通过Class类、Method类、...原创 2018-05-09 14:46:48 · 453 阅读 · 0 评论 -
Java学习笔记--线程和多线程线程池(简单理解)
线程: 单核的cpu在一个时间片中只能执行一个应用程序 各个程序其实在做cpu的资源真多战而已 cpu做了快速的切换动作 疑问 :线程负责了代码 的执行,我们之前没有学过线程,为什么代码可以执行呢? 运行任何一个java程序,jvm在运行的时候都会创建一个main线程执行main方法中所有代码。 一个java应用程序至少有几个线程? 至少有两个线程, 一个是主线程负责m...原创 2018-05-02 15:34:39 · 563 阅读 · 0 评论 -
java学习笔记--数组操作(Collections和Arrays)
关于数组操作 4.Collections与Arrays 集合框架中的工具类:特点:该工具类中的方法都是静态的。 Collections:常见方法: 1,对list进行二分查找: 前提该集合一定要有序。 int binarySearch(list,key); 求元素所在的索引 (有自然顺序)常用 //必须根据元素自然顺序对列表进行升级排序 //要求list 集合中的元素都是C...原创 2018-05-02 15:20:44 · 319 阅读 · 0 评论 -
IO流学习总结(下)---字符流
字符流:顾名思义就以字符的形式读写文件的 单位是char 其实内部也是通过字节二进制来操作的 只是它内部多了个编码和解码的功能 比如write一个字符的时候Java虚拟机会自动编码 reader的时候又会自动解码 重点:操作是以字符为单位 记住字符流和字节流的唯一区别就是一个是对char进行操作 一个对字节进行操作 返回的其实都是int类型首先看一下写入: Read...原创 2018-04-24 16:08:02 · 185 阅读 · 0 评论 -
java学习笔记--io流的异常处理
public static void main(String[] args) { // readTest(); copyImage(); } // 拷贝图片 public static void copyImage() { FileInputStream fileInputStream = null; FileO...原创 2018-04-24 15:47:27 · 297 阅读 · 0 评论 -
IO流学习总结(下)---字节流
字节流://本文代码大多都是摘录自网络 自己敲怕有纰漏 还请见谅 先来理解一下字节流的含义 听名字 顾名思义 字节流是通过传输字节的流 操作单位是一个个的字节 优点很明显:因为是操作字节 所以任何文件都可以操作 比如图片 视频 音乐等 缺点也很明显:因为是一个一个操作 所以速度低下 不过我们可以创建个缓冲速度来提高效率 下面会提到 知识背景: 一个字节byte=8个位bit 一个二...原创 2018-04-24 15:31:54 · 202 阅读 · 0 评论