迷糊笔记
天上飞下一毛雪
弱鸡的冒险之旅,大四找工作狗,我真的真的好菜。。。。博客内容如有侵权或交流讨论,请加微信:jqt1120359293
展开
-
Java的IO流 - FileReader - FileWriter -(文本文档的复制)
这个和之前的FileInputStream用法一样注意: * 使用FileReader、FileWriter 可以实现文本文件的复制。(字符流嘛16个bit能传汉字) * 对于非文本文件(视频文件、音频文件、图片),只能使用字节流! 记录一下使用示例:文本文档的复制import java.io.File;import java.io.FileNotFoundExceptio...原创 2019-02-21 15:07:07 · 181 阅读 · 0 评论 -
Java集合框架(Collection接口下的List接口)
重温一下Java的集合框架,常用的数据结构啊。其实这些集合框架本质上还是顺序数组或链表来实现的只是JDK完成了封装,当然JDK的代码是大佬们写的,性能安全性肯定很优秀。所以我们这群小弱鸡直接用就好了。。。1.存储对象可以考虑:①数组 ②集合 * 2.数组存储对象的特点:Student[] stu = new Student[20]; stu[0] = new Student();.... ...原创 2019-02-19 00:36:37 · 532 阅读 · 0 评论 -
Java多态性 - instanceof
主要是记录了 instanceof 的用法 ,老是出现迷惑记录下。将子类对象转换为父类称为“向上转型”,反之称为向下转型。最后的实例中,People obj = new Teacher();中就是把子类Teacher转化成了父类而后赋值给父类变量的。向上转型是随意的,而向下转型不能随便转,只有经过向上转型的对象才可以向下转型。当父类变量指向子类对象时,只能调用父类中独有的函数或者是被子...原创 2019-02-19 15:57:11 · 236 阅读 · 0 评论 -
Java的Collections工具类(对List、Set、Map实现排序、反转等)
Collections是一个操作Set、List和Map等集合的工具类(实现排序、反转等等)注:Collection是Set、List的基类接口,而Collectins是一个工具类工具类一般的方法都是static静态的,直接调用就好(如下是部分截图,没有截全,还有一些涉及线程安全的类不常用) Collections的常用方法: import java.uti...原创 2019-02-19 23:56:53 · 2781 阅读 · 0 评论 -
Java多线程同步机制 - 线程生命周期
假如出现这样一个场景:多个窗口同时售卖一辆火车的票,此时为多线程问题,那么此时判断票数和对票数进行加减操作是必须一起完成,要么不一起完成,是一个原语(原子操作)的概念。假如不对这两个步骤进行限制那么此程序存在线程的安全问题:打印车票时,会出现重票、错票例如:窗口一判断此时还有20张票刚要进行出票,但是此时窗口二抢到了线程由于窗口一还没有出票,此时票数还是为20那么就会出现了同时发售第20张票...原创 2019-02-25 19:44:52 · 179 阅读 · 0 评论 -
Java线程通信 - 生产者消费者 - 线程交替打印0-100数值
线程通信的方法在Object方法中, 线程通信。如下的三个关键字使用的话,都得在同步代码块或同步方法中。wait():一旦一个线程执行到wait(),就释放当前的锁。令当前线程挂起并放弃CPU、同步资源、使别的线程可以访问并修改共享资源,而当前线程排队等待再次对资源的访问。notify()/notifyAll():唤醒wait的一个或所有的线程例题:使用两个线程打印 1-100....原创 2019-02-25 20:45:27 · 228 阅读 · 0 评论 -
Java的String内存使用问题 - 及其常用方法
* String:代表不可变的字符序列。底层使用char[]存放 * String 是final的== 比较的是地址。equals比较的是内容String中有一个字符串常量池的概念,new的对象在堆中存放,声明的变量在栈中存放,字符串在字符串常量池中存放。内存使用见图:字符串、byte字节(8bit)、char字符(16bit) * 1....原创 2019-02-25 21:35:04 · 830 阅读 · 0 评论 -
Java的String类题目
在JDK中其实已经封装好了这些方法,但是想深入原理的话需要自己实现一下 1.模拟一个trim方法,去除字符串两端的空格。 2.将一个字符串进行反转。将字符串中指定部分进行反转。比如将“abcdefg”反转为”abfedcg” 3.获取一个字符串在另一个字符串中出现的次数。 比如:获取“ab”在 “abkkcadkabkebfkabkskab” ...原创 2019-02-25 22:32:45 · 387 阅读 · 0 评论 -
Java泛型 - 通配符? ? extends A 的含义
泛型是JDK5.0后加入的新特征,现在是经常用到,所以记录一下。为什么使用泛型?解决元素存储的安全性问题 解决获取数据元素时,需要类型强制转化的问题在不使用泛型时:在list中添加的都是Integer类型,而突然添加了一个String类型,下方强制转化时就不知道如何强制转化了 List list = new ArrayList(); list.add(89); li...原创 2019-02-20 16:54:23 · 1899 阅读 · 0 评论 -
Java枚举类enum
什么情况下使用枚举类:有的时候一个类的对象是有限且固定的,这种情况下我们使用枚举类就比较方便什么是枚举:扯远一点。。。经典算法有个枚举算法,枚举算法简单粗暴,他暴力的枚举所有可能,尽可能地尝试所有的方法。虽然枚举算法非常暴力,而且速度可能很慢,但确实我们最应该优先考虑的!因为枚举法变成实现最简单,并且得到的结果总是正确的。简单来说就是。。能穷举出来,例如单例模式只允许有一个实例对象...原创 2019-02-20 17:57:16 · 195 阅读 · 0 评论 -
Java的IO流 - FileInputStream - FileOutputStream -(包含图片或视频的复制)
在大二的时候草草的学了一些,那时候很懵只是有个大概印象,如今来总结一下流的分类:* 按照数据流向的不同:输入流 输出流* 按照处理数据的单位的不同:字节流(8bit) 字符流(处理的文本文件 16bit)* 按照角色的不同:节点流(直接作用于文件的) 处理流所有文件的操作类都是在IO包下的,基类为如下4个抽象基类:来放下他们的大家族的合照。。。:嗯。。。...原创 2019-02-21 00:47:38 · 472 阅读 · 0 评论 -
Java异常-编程示例
java的异常处理:抓抛模型 * 1.抓:异常的处理,有两种方式(①try-catch-finally② throws + 异常的类型) * 2.抛:一旦执行过程中,出现异常,会抛出一个异常类的对象。(自动的抛出 vs 手动的抛出(throw + 异常类的对象)) * >异常类,既可以是现成的异常类,也可以是自己创建的异常类 * 异常处理的方式一:try-catch-f...原创 2019-02-18 22:25:37 · 182 阅读 · 0 评论 -
Java的IO流 - BufferedInputStream - BufferedOutputStream -(常用)
之前有记录了FileInputStream - FileOutputStream的使用,他们属于字节流 BufferedInputStream - BufferedOutputStream属于处理流,是包裹在字节流之上的。 BufferedXXX更常用因为更快这里记录了使用Bufferedxxx实现文件复制的代码示例:(注意一点:写完之后调用一下flush()方法,Buffere...原创 2019-02-21 15:31:34 · 395 阅读 · 0 评论 -
Java参数值传递 swap(a,b)--如何交换a、b的值
首先明白Java的数据类型分为两种:基本数据类型 和 引用数据类型 java中的参数传递机制:值传递 形参是基本数据类型的,将实参的值传递给形参的基本数据类型的变量 形参是引用数据类型的,将实参的引用类型变量的值(对象的首地址)传递给形参二者的概念:1)基本类型:简单数据类型是不能简化的、内置的数据类型、由编程语言本身定义,它表示了真实的数字、字符和整数。2)引用数据类型:...原创 2019-02-16 16:39:14 · 4800 阅读 · 1 评论 -
Java 基本数据类型和包装类和String类的互转
int -> Stringint i=12345;String s="";s=i+""; //第一种方法:s=String.valueOf(i); //第二种方法:调用String类的静态valueOf方法 String -> ints="12345";int i;i=Integer.parseInt(s); //第一种方...原创 2019-02-17 00:10:56 · 173 阅读 · 0 评论 -
Java反射代码示例
常用示例:package com.atguigu.java;import java.io.File;import java.io.FileInputStream;import java.io.InputStream;import java.lang.reflect.Field;import java.lang.reflect.Method;import java.util.P...原创 2019-02-27 20:27:02 · 239 阅读 · 0 评论 -
Java动态代理及其AOP切面编程
动态代理是指客户通过代理类来调用其它对象的方法,并且是在程序运行时根据需要,动态创建目标类的代理对象。代理的优势:见该博客:https://www.cnblogs.com/gonjan-blog/p/6685611.html/** * 创建Person接口 * @author Gonjan */public interface Person { //上交班费 ...原创 2019-02-27 20:33:29 · 471 阅读 · 0 评论 -
Java的Socket编程TCP传输图片
从客户端发送文件给服务端,服务端保存到本地。并返回“发送成功”给客户端。并关闭相应的连接。主要是read方法是阻塞式的会一直等待后续的输入,需要显示的调用shutdownOutput():执行此方法,显式的告诉服务端发送完毕!package com.jiang.test;import java.io.File;import java.io.FileInputStream;impor...原创 2019-02-27 22:21:24 · 997 阅读 · 0 评论 -
Java序列化ObjectInputputStream - and -Out
什么是序列化和反序列化:之前有学了Mapreduce,当时传输JavaBean时还有Hadoop自定义的类型,都是经过了序列化,当时我不懂序列化的意思。序列化 (Serialization)是将对象的状态信息转换为可以存储或传输的形式的过程。一般将一个对象存储至一个储存媒介,例如档案或是记亿体缓冲等。在网络传输过程中,可以是字节或是XML等格式。而字节的或XML编码格式可以还原完全相等的对...原创 2019-02-23 19:10:47 · 246 阅读 · 0 评论 -
Java的RandomAccessFile读写文件
RandomAccessFile的使用类似于C语言的文件读写,可以实现随机的对文件进行读写插入添加其中mode的可选参数为: 读写文件//进行文件的读、写 @Test public void test1(){ RandomAccessFile raf1 = null; RandomAccessFile raf2 = null; try { raf1...原创 2019-02-23 19:27:05 · 2264 阅读 · 0 评论 -
Java多线程(两种方式 和 常用方法)
何时需要多线程程序需要同时执行两个或多个任务 程序需要实现一些需要等待的任务时,如用户输入、文件读写、网络操作 需要一些后台运行的程序有两种方法来实现多线程(最优的是第二张实现runnable的方法) * 创建多线程的第一种方式:继承java.lang.Thread类//1.创建一个继承于Thread的子类class SubThread extends Thread{ //...原创 2019-02-23 20:34:48 · 465 阅读 · 0 评论 -
Java interface(接口)应用例子-代理模式-工厂模式
最近正在对Java的基础知识进行回顾。唉,大二的时候没有好好听Java课跑去学Python了,现在感觉自己Java基础好差,嘤嘤嘤。之前一直有疑惑:接口能干什么?接口可以实现不相关类的相同行为,而不需要考虑这些类之间的层次关系 通过接口可以指明多个类需要实现的方法,一般用于自定义对象的扩张功能 接口主要用来定义规范,解除耦合关系应用例子://接口的应用public class...原创 2019-02-18 16:56:04 · 431 阅读 · 0 评论 -
Java的常用类StringBuffer - StringBuilder - SimpleDateFormat - Date (日期实战判断三天打鱼两天晒网骚操作)
* java.lang.StringBuffer:可变的字符序列 * java.lang.StringBuilder:可变的字符序列,是jdk5.0新加入的,线程不安全,效率要高于StringBuffer.public class TestStringBuffer { /* * 对比String,StringBuffer,StringBuilder三者在添加上的效率: * 效率从...原创 2019-02-26 17:00:58 · 244 阅读 · 0 评论