java
文章平均质量分 52
一米阳光MM
每一天的积累是很重要的
展开
-
Java I/O复习
IO的核心就是五个类(File,OutputStream、InputStream、Reader、Writer)和一个接口(Serializable)1.File文件操作类在Java.io包中,File类是唯一一个与文件本身操作(创建、删除、取得信息)有关的类1.1File类的使用java.io.File类就是一个普通的类,直接实例化对象即可,可以使用一下两个构造方法实例化对象 1. public File(String pathname);//设置文件的路径 2. public File(St原创 2020-11-08 19:11:58 · 94 阅读 · 0 评论 -
JVM 的简单介绍
什么是JVM : Java Virtual Machine的简称,即Java虚拟机虚拟机的概念:指通过软件模拟的具有完整硬件功能的、运行在一个完全隔离的环境中的完整计算机系统常见的虚拟机:JVM、VMwave、Virtual BoxJVM和其他两个虚拟机的区别:VMwave Virtual Box是通过软件模拟物理CPU的指令集,物理系统中会有很多的寄存器 ...原创 2019-07-27 14:53:09 · 100 阅读 · 0 评论 -
Java内存区域与可能出现的异常
运行时数据区域线程共享区域:堆,方法区,运行时常量池线程私有区域:程序计数器,Java虚拟机栈,本地方法栈程序计数器: 程序计数器:内存空间比较小,可以看作当前线程所执行的字节码的行号指令集 若当前线程正在执行的是一个Java方法,这个计数器记录的时正在执行的虚拟机字节码指令的地址 若执行的是一个N...原创 2019-07-27 15:14:58 · 80 阅读 · 0 评论 -
内存操作流及各种输入输出流
内存操作流文件流的操作是对文件进行操作,除了文件,IO也可以对内存进行操作,这种流称之为内存流内存流分为两类:字节内存流:ByteArrayInputStream、ByteArrayOutputStream字符内存流:CharArrayReader、CharArrayWriter看一下ByteArrayInputStream、ByteArrayOutputStream的构造方法pu...原创 2019-08-01 12:20:03 · 502 阅读 · 0 评论 -
简单的工厂模式
第一个版本interface fruit{ public abstract void eat();}class Apple implements fruit{ @Override public void eat() { System.out.println("苹果"); }}class Orange implements fruit{...原创 2019-08-01 15:31:40 · 89 阅读 · 0 评论 -
集合
类集的引出类集实际上就是动态的对象数组,因为在开发过程中用到数组的地方并不多,因为数组的长度是固定的,所以Java为了解决数组长度固定的问题,JDK1.2引出了类集。Collection接口Java类集中最核心的两个接口:Collection、Map,其中Collection的操作和链表的操作类似,只能对单个对象操作,JDK1.5之后Collection接口上增加了泛型,避免了ClassCa...原创 2019-07-28 11:38:13 · 166 阅读 · 0 评论 -
ArrayList、Vector、 LinckedList的联系与区别
联系:都是List接口的子类,Array List、Vector都是基于数组实现,LinckedList基于链表实现区别:1.Array List采用懒加载模式,(默认大小为10)扩容为原先数组的1.5倍,采用异步处理,线程不安全,性能较高,在频繁查找以及尾部的插入与删除场景下使用ArrayList2.Vector当产生对象时就初始化内部数组(默认大小为10),扩容为原先数组2倍,采用s...原创 2019-07-28 12:04:32 · 549 阅读 · 0 评论 -
ClassLoader类加载器
类加载器是干什么用的将Class文件加载到JVM中根据父级优先原则,决定这个类有谁加载将Class文件解析为JVM认识的结构类加载器的种类BootsrapClassLoader(启动类加载器)使用C++实现的,是虚拟机自身的一部分,其他的类都是由Java语言实现ExtensionClassLoader(扩展类加载器)ApplicationClassLoader(应用程序类加载器)...原创 2019-08-01 16:18:01 · 106 阅读 · 0 评论 -
反射与代理设计模式
代理设计模式的核心:一个接口有两个子类,一个负责真实的业务,一个负责与真实业务有关的辅助性操作interface ISubject{ public void eat();}class realSubject implements ISubject{ @Override public void eat() { System.out.println("饿了...原创 2019-08-01 17:58:32 · 66 阅读 · 0 评论 -
多线程常用的操作方法
线程命名和取得创建线程时起名:public Thread(Runnable target,String name)设置线程名称:public final synchronized void setName(String name)取得线程名称:public final String getName();线程休眠让线程休息以下,等到了预计时间(毫秒位单位)继续执行线程休眠会交出CPU...原创 2019-08-08 16:40:44 · 97 阅读 · 0 评论 -
常用字符编码及乱码分析
常见的编码GBK、GB2312:表示国标编码,GDB包含简体中文和繁体中文,而DB2312只包含简体中文,也就是说,这两种编码都是描述中文的编码UNICODE编码:Java提供的16进制编码,可以描述世界上任意的文字信息,但是有个问题,若现在所有的字母都使用16进制编码,那么这个编码太庞大了,会造成网络传输的负担ISO8859-1:国际通用编码,但是所有的编码都需要进行转换UTF编码:相...原创 2019-08-01 10:58:07 · 3231 阅读 · 1 评论 -
Java逻辑控制
程序结构与逻辑控制在java中,程序一共有三种结构:顺序结构,分支结构,循环结构分支结构(if,else语句,switch语句)分支结构:进行逻辑判断,当满足某些条件时才会执行某些语句使用if,else可以实现对多条件的判断,但如果进行多值判断,可以使用switch语句switch语句switch(int\char\enum\String)case 表示分支分支结束使用break;...原创 2019-08-02 17:06:19 · 117 阅读 · 0 评论 -
Java的数据类型与运算符
Java标识符和关键字Java注释a.单行注释://注释内容(用的最多)b.多行注释:/注释内容/(不推荐)c.文档和多行注释:/*文档/Java标识符(变量,常量,类,函数等的名称)标识符的要求标识符由字母、数字、_组成,其中不能以数字开头,不能使用Java中的关键字命名规范:驼峰命名法对于类名:类名是以大写字母开头的名词,如果类名由多个单词组成,则每个单词的首写字母大写;eg...原创 2018-12-02 17:48:23 · 137 阅读 · 0 评论 -
java-逻辑控制和方法使用
程序结构与逻辑控制Java分支结构分支结构:进行逻辑判断,当满足某些条件时才会执行某些语句if语句if语句共有两种形式if(布尔表达式){ //条件满足时执行的代码 }else{ //条件不满足时执行的代码 }if(布尔表达式){ //条件满足时执行的代码 }else if(布尔表达式){ //条件满足时执行的代码 }....原创 2019-02-20 22:55:12 · 226 阅读 · 0 评论 -
初识进程,线程
1.进程,线程的概念进程:一个运行的程序,一个进程中包含N个线程,进程一旦终止,其内的线程也将不复存在线程:进程中的一个任务2.进程和线程的区别1.每个进程拥有自己的一整套变量,是操作系统中资源分配的最小单位线程依托于进程存在,多个线程共享进程的资源,OS中任务调度的基本单位2.启动、撤销一个进程的开销要比启动,撤销一个线程大得多(线程轻量级)3.没有进程就没有线程,进程一旦终止,其...原创 2019-04-26 17:58:17 · 101 阅读 · 0 评论 -
守护线程
守护线程守护线程是一种特殊的线程,属于陪伴线程Java中的两种线程:用户线程,守护线程。isDaemon()(Thread类提供)返回 true 守护线程 false 用户线程典型的守护线程:垃圾回收线程。只要当前JVM进程中存在任何一个用户线程没有结束,守护线程就一直在工作;只有当最后一个用户线程停止后,守护线程会随着JVM进程一同停止setDeamon()将当前线程设置成为守护线...原创 2019-05-01 12:53:02 · 79 阅读 · 0 评论 -
线程池
为什么要有线程池?1.降低资源消耗:通过重复利用已创建的线程降低创建和销毁线程带来的消耗2.提高响应速度:当任务到来时,任务不用等待线程的创建就能立即执行3.提高线程的可管理性:使用线程池可以统一进行线程分配、调度和监控线程池的相关接口和类线程池处理任务的主要流程1.判断核心线程池是否已满,如果未满,创建一个新的线程来执行任务,(创建线程需要获取全局锁)不管有没有空闲线程。如果已满,...原创 2019-05-10 17:37:07 · 139 阅读 · 0 评论 -
Map集合
Collection只能进行单个对象的保存,若要进行偶(一对)对象的保存就只能使用Map集合,这一对对象的关系:key = value,value可通过key找到Map接口下的常用方法:1.向Map中追加元素:public V put(K key,V value)2.根据key取得对应的value,如果没有返回null:public V get(Object key)...原创 2019-07-29 10:56:06 · 93 阅读 · 0 评论 -
抽象类和接口
抽象类抽象类的使用原则:1.抽象方法必须为public或protect(若为private则不能被子类锁覆写),没写的情况下默认public2.抽象类不能直接实例化,需要借助子类向上转型的方式实例化3.抽象类必须有子类,使用extends继承,一个子类只能继承一个抽象类4.子类若不是抽象类,则必须覆写抽象类中的所有抽象方法,若子类不能覆写所有的抽象方法,则将子类也定义为抽象类我们经...原创 2019-07-29 12:44:15 · 275 阅读 · 0 评论 -
File类和字节流、字符流的操作
在Java.io包中,File类是唯一一个与文件本身操作有关的类File类的使用File类可直接产生实例化对象,需要用到两个构造方法public File(String pathname) ;public File(String parent, String child),设置父路径和子路径。有关文件的方法//创建一个新文件public boolean createNewFile(...原创 2019-07-29 16:14:22 · 292 阅读 · 0 评论 -
字节流和字符流的转换
OutputStreamWriter:将字节输出流转换为字符输出流InputStreamReader:将字节输入流转换为字符输入流我们先看下这两个类的继承关系和构造方法public class OutputStreamWriter extends Writer public OutputStreamWriter(OutputStream out)public class InputStr...原创 2019-08-02 17:02:11 · 345 阅读 · 0 评论 -
Java简介
Java是一门半编译半解释性语言编译命令:javac*使用javac将*.java(源文件)编译为*.class(与平台无关的二进制文件提供给JVM(Java虚拟机))解释命令:Java使用Java命令启动了JVM虚拟机进程(软件)来将二进制class文件翻译为平台相关的可执行文件并执行主方法中字符串数组传值使用Java命令解释二进制class文件时传值eg:java Day1 he...原创 2018-12-02 16:53:58 · 87 阅读 · 0 评论