
java学习
文章平均质量分 93
基础学习
小夏天禧
这个作者很懒,什么都没留下…
展开
-
day08【File类、递归】
第一章 File类1.1 概述java.io.File 类是文件和目录路径名的抽象表示,主要用于文件和目录的创建、查找和删除等操作。1.2 构造方法 public File(String pathname) :通过将给定的路径名字符串转换为抽象路径名来创建新的 File实例。 public File(String parent, String child) :从父路径名字符串和子路径名字符串创建新的 File实例。 public File(File parent, S原创 2021-04-20 13:49:21 · 179 阅读 · 0 评论 -
day07【线程池、Lambda表达式】
第一章 等待唤醒机制1.1 线程间通信概念:多个线程在处理同一个资源,但是处理的动作(线程的任务)却不相同。为什么要处理线程间通信:多个线程并发执行时, 在默认情况下CPU是随机切换线程的,当我们需要多个线程来共同完成一件任务,并且我们希望他们有规律的执行, 那么多线程之间需要一些协调通信,以此来帮我们达到多线程共同操作一份数据。如何保证线程间通信有效利用资源:多个线程在处理同一个资源,并且任务不同时,需要线程通信来帮助解决线程之间对同一个变量的使用或操作。 就是多个线程在操作.原创 2021-04-19 15:23:08 · 159 阅读 · 0 评论 -
day06 【线程、同步】
第一章 线程1.1 多线程原理1.2 Thread类在我们完成操作过程中用到了java.lang.Thread类,API中该类中定义了有关线程的一些方法,具体如下:构造方法:public Thread():分配一个新的线程对象。 public Thread(String name):分配一个指定名字的新的线程对象。 public Thread(Runnable target):分配一个带有指定目标新的线程对象。 public Thread(Runnable target...原创 2021-04-18 22:47:23 · 89 阅读 · 0 评论 -
day05 【异常、线程】
第一章 异常1.1 异常概念异常 :指的是程序在执行过程中,出现的非正常的情况,最终会导致JVM的非正常停止。在Java等面向对象的编程语言中,异常本身是一个类,产生异常就是创建异常对象并抛出了一个异常对象。Java处理异常的方式是中断处理。异常指的并不是语法错误,语法错了,编译不通过,不会产生字节码文件,根本不能运行。1.2 异常体系异常机制其实是帮助我们找到程序中的问题,异常的根类是java.lang.Throwable,其下有两个子类:java.lang.Error与jav原创 2021-04-17 16:11:57 · 90 阅读 · 0 评论 -
day02【Collection、泛型】
第一章 Collection集合1.1 集合概述在前面基础班我们已经学习过并使用过集合ArrayList ,那么集合到底是什么呢?集合:集合是java中提供的一种容器,可以用来存储多个数据。集合和数组既然都是容器,它们有啥区别呢?数组的长度是固定的。集合的长度是可变的。 数组中存储的是同一类型的元素,可以存储基本数据类型值。 集合存储的都是对象。而且对象的类型可以不一致。在开发中一般当对象多的时候,使用集合进行存储。1.2 集合框架JAVASE提供了满足各种需求的AP...原创 2021-04-16 10:05:54 · 115 阅读 · 0 评论 -
day03java学习
第一章 数据结构2.1 数据结构有什么用我们将常见的数据结构:堆栈、队列、数组、链表和红黑树 这几种给大家介绍一下,作为数据结构的入门,了解一下它们的特点即可。2.2 常见的数据结构栈栈:stack,又称堆栈,它是运算受限的线性表,其限制是仅允许在标的一端进行插入和删除操作,不允许在其他任何位置进行添加、查找、删除等操作。简单的说:采用该结构的集合,对元素的存取有如下的特点 先进后出(即,存进去的元素,要在后它后面的元素依次取出后,才能取出该元素)。例如,子弹压进弹夹,先压进原创 2021-04-11 21:33:26 · 163 阅读 · 0 评论 -
day04 java学习
第一章 Map集合1.1 概述现实生活中,我们常会看到这样的一种集合:IP地址与主机名,身份证号与个人,系统用户名与系统用户对象等,这种一一对应的关系,就叫做映射。Java提供了专门的集合类用来存放这种对象关系的对象,即java.util.Map接口。我们通过查看Map接口描述,发现Map接口下的集合与Collection接口下的集合,它们存储数据的形式不同,如下图。Collection中的集合,元素是孤立存在的(理解为单身),向集合中存储元素采用一个个元素的方式存储。 Map中的集合..原创 2021-04-10 21:51:40 · 125 阅读 · 0 评论 -
day10 java学习
第一章 缓冲流昨天学习了基本的一些流,作为IO流的入门,今天我们要见识一些更强大的流。比如能够高效读写的缓冲流,能够转换编码的转换流,能够持久化存储对象的序列化流等等。这些功能更为强大的流,都是在基本的流对象基础之上创建而来的,就像穿上铠甲的武士一样,相当于是对基本流对象的一种增强。1.1 概述缓冲流,也叫高效流,是对4个基本的FileXxx 流的增强,所以也是4个流,按照数据类型分类:字节缓冲流:BufferedInputStream,BufferedOutputStream字...原创 2021-04-08 10:51:22 · 122 阅读 · 0 评论 -
day09【字节流、字符流】
第一章 IO概述1.1 什么是IO生活中,你肯定经历过这样的场景。当你编辑一个文本文件,忘记了ctrl+s ,可能文件就白白编辑了。当你电脑上插入一个U盘,可以把一个视频,拷贝到你的电脑硬盘里。那么数据都是在哪些设备上的呢?键盘、内存、硬盘、外接设备等等。我们把这种数据的传输,可以看做是一种数据的流动,按照流动的方向,以内存为基准,分为输入input 和输出output ,即流向内存是输入流,流出内存的输出流。Java中I/O操作主要是指使用java.io包下的内容,进行输入、输出操作。...原创 2021-04-07 19:43:22 · 167 阅读 · 0 评论 -
01-JAVA快速入门(廖雪峰)
一、Java简介学习java的原因:目前全球Top1开发语言 应用于企业和互联网后端开发、Android开发、大数据开发 市场需求最大的软件工程师 便于学习其他语言Java特点:一种面向对象的跨平台编程语言 以字节码方式运行在虚拟机上 自带功能齐全的类库 非常活跃的开源社区支持Java优点:简单、健壮、安全 跨平台,一次编写,到处运行 高度优化的虚拟机Java缺点:语法较繁琐 无法直接操作硬件不适合底层系统的开发 GUI效果不佳不适合桌面应用的...原创 2020-09-18 16:27:35 · 977 阅读 · 0 评论 -
4Java反射与泛型——3泛型——3编写泛型(廖雪峰)
1编写泛型编写泛型类比普通类要复杂 泛型类一般用在集合类中 ArrayList<T> 很少需要编写泛型类如何编写一个泛型类:按照某种类型(例如String)编写类 标记所有的特定类型(例如String) 把特定类型替换为T,并申明<T>public class Pair<T> { private T first; private T last; public Pair(T first,T last) { thi原创 2020-08-13 15:04:53 · 155 阅读 · 1 评论 -
4Java反射与泛型——3泛型——2使用泛型(廖雪峰)
1不使用泛型不定义泛型类型时:List的接口变为Object类型: void add(Object) Object get(int) 编译器警告 此时只能把<T>当做Object使用List list = new ArrayList();list.add("Hello");list.add("world");Object first = list.get(0);Object second = list.get(1);2使用泛型定义泛型类型<Stri原创 2020-08-13 11:45:24 · 152 阅读 · 0 评论 -
4Java反射与泛型——3泛型——1什么是泛型(廖雪峰)
为什么需要泛型?JDK提供了ArrayList,可以看作“可变长度”的数组:比数组使用方便public class ArrayList { private Object[] array; public void add(Object e){...} public void remove(int index){...} public Object get(int index){...}}如果用ArrayList存储String类型:见下面代码示例需要强制转原创 2020-08-09 15:41:21 · 186 阅读 · 0 评论 -
4Java反射与泛型——2注解——3处理注解(廖雪峰)
1Annotation注解本身对对代码逻辑没有任何影响 SOURCE类型的注解在编译期就被丢掉了 CLASS类型的注解仅保存在class文件中 RUNTIME类型的注解在运行期可以被读取 如何使用注解由工具决定@Target(ElementType.TYPE)@Retention(RetentionPolicy.RUNTIME)public @interface Report { int type() default 0; String level() default "原创 2020-08-08 09:49:26 · 242 阅读 · 0 评论 -
4Java反射与泛型——2注解——2定义注解(廖雪峰)
1注解使用@interface定义注解(Annotation):注解的参数类似无参数方法 可以设定一个默认值(推荐) 把最常用的参数命名为value(推荐)public @interface Report { int type() default 0; String level() default "info"; String value() default "";}2元注解(meta annotation)一个是Target,一个是Rentention原创 2020-08-06 19:54:13 · 117 阅读 · 0 评论 -
4Java反射与泛型——2注解——1使用注解(廖雪峰)
1Annotation什么是注解(Annotation):注解是放在Java源码的类、方法、字段、参数前的一种标签@Resource("hello")public class Hello{ @Inject int n; @PostConstruct public void hello(@param String name) { System.out.println(name); } @Override publ原创 2020-08-06 16:57:02 · 191 阅读 · 0 评论 -
4Java反射与泛型——1反射——5获取继承关系(廖雪峰)
1getSuperclass()获取父类的Class:Class getSuperclass() Object的父类是null interface的父类是nullClass sup = Integer.class.getSuperclass();//Number.classObject.class.getSuperClass();//nullRunnable.class.getSuperclass();//null原创 2020-08-06 14:24:55 · 144 阅读 · 2 评论 -
4Java反射与泛型——1反射——4调用构造方法(廖雪峰)
1newInstanceClass.newInstance()只能调用public无参数构造方法String s = (String) String.class.newInstance();Integer n = (Integer) Integer.class.newInstance();//不能直接调用,因为Integer没有定义无参数的构造方法2Constructor对象如何调用带参数的构造方法呢?可以调用Constructor方法,Constructor对象包含一个构造方法的所原创 2020-08-05 21:21:34 · 303 阅读 · 0 评论 -
4Java反射与泛型——1反射——3调用方法(廖雪峰)
1Method通过class实例获取方法Method信息:getMethod(name,Class...):获取某个public的method(包括父类) getDeclaredMethod(name,Class...):获取当前类的某个method(不包括父类) getMethods():获取所有public的method(包括父类) getDeclaredMethods():获取当前类的所有method(不包括父类) Animal.java2Method对象Method对象包含一个原创 2020-08-05 12:54:59 · 449 阅读 · 0 评论 -
4Java反射与泛型——1反射——2访问字段(廖雪峰)
1field(字段)getField(name): 获取某个public的field(包括父类) getDeclaredField(name): 获取当前类的某个field(不包括父类) getFields(): 获取所有public的field(包括父类) getDeclaredFields(): 获取当前类的所有field(不包括父类)Field对象包含一个field的所有信息:getName() getType() getModifiers()Integer n = new I原创 2020-08-04 17:51:30 · 200 阅读 · 0 评论 -
3Java异常处理——1错误处理——4自定义异常(廖雪峰)
1.JDK已有的异常RuntimeException NullPointerException IndexOutOfBoundsException SecurityException IllegalArgumentException NumberFormatException IOException UnsupportedCharsetException,FileNotFoundException,SocketException.... ParseExceptio原创 2020-08-01 11:22:38 · 220 阅读 · 0 评论 -
3Java异常处理——1错误处理——3抛出异常(廖雪峰)
1.异常的传播当某个方法抛出异常时:如果当前方法没有捕获,异常就被抛到上层调用方法 直到遇到某个try ...catch 被捕获 printStackTrace()可以打印出方法的调用栈 printStackTrace()对于调试错误非常有用 public class Main { public static void main(String[] args){ try { process1(); } catch (Exception e) { e.p原创 2020-07-31 18:34:07 · 247 阅读 · 0 评论 -
4Java反射与泛型——1反射——1class类(廖雪峰)
1classJava除基本类型外其他都是class(包括interface)String Object Runnable Exception ...String s = "Hello";Object o = new Double(123.456);Runnable r = new Thread();Exception e = new RuntimeException();原创 2020-08-03 20:27:47 · 383 阅读 · 0 评论 -
3Java异常处理——2断言和日志——4使用Log4j(廖雪峰)
1.Log4jLog4j是目前最流行的日志框架1.x:Log4j 2.x:Log4j2log.info("User logged in.");Commons Logging可以自动使用Log4j:Commons Logging如果在classpath中发现了log4j,就会使用log4j始终使用Commons Logging接口来写入日志 开发阶段无需引入Log4j 使用Log4j只需要把正确的配置文件和相关jar包放入classpath 使用配置文件可灵活修改日志,无需原创 2020-08-03 10:51:11 · 160 阅读 · 0 评论 -
3Java异常处理——2断言和日志——3使用Commons Logging(廖雪峰)
1.Commons LoggingCommons Logging是Apache创建的日志模块:可以挂接不同的日志系统 可以通过配置文件指定挂接的日志系统 自动搜索并使用Log4j 使用JDK Logging(JDK >= 1.4)public class Main{ public static void main(String[] args){ Log log = LogFactory.getLog(Main.class); log.info原创 2020-08-02 08:47:47 · 147 阅读 · 0 评论 -
3Java异常处理——2断言和日志——2使用JDK Logging(廖雪峰)
1.日志(Logging)什么是日志(Logging)为了取代System.out.println() 可以设置输出样式 可以设置输出级别,禁止某些级别输出 可以被重定向到文件 可以按包名控制日志级别public class Hello{ public static void main(String[] args) { System.out.println("start...."); System.out.println("end"); }原创 2020-08-01 17:51:23 · 161 阅读 · 0 评论 -
3Java异常处理——2断言和日志——1使用断言(廖雪峰)
1.Assertion断言(Assertion)是一种程序调试方式使用assert关键字 断言条件预期为true 如果断言失败,为false,抛出AssertionErrorstatic double abs(double d){ return d >= 0 ? d : -d;}public static void main(String[] args){ double x = abs(-123.45); assert x >= 0; ass原创 2020-08-01 12:06:41 · 240 阅读 · 0 评论 -
3Java异常处理——1错误处理——2捕获异常(廖雪峰)
1.捕获异常1.1catchpublic static void main() { try { process1(); process2(); process3(); } catch (IOException e){ e.printStackTrace(); }}try{...} catch(){...}使用try...catch捕获异常 可能发生异常的语句放在try {...}中 使用catch原创 2020-07-31 12:11:38 · 241 阅读 · 0 评论 -
3Java异常处理——1错误处理——1java的异常(廖雪峰)
1.计算机运行时的错误在计算机程序运行的过程中,错误总会出现:用户输入错误 读写文件错误 网络错误,内存耗尽,无法连接打印机....//假设用户输入了abcString s = "abc";int n = Integer.parseInt(s);//Error!//用户删除了该文件String t = readFile("C:\\abc.txt");//Error!错误如果方法调用出错,调用方如何得知这个错误:约定返回错误码int code = processFil原创 2020-07-31 10:39:50 · 241 阅读 · 0 评论 -
2Java面向对象编程——6java核心类——6常用工具类(廖雪峰)
1.Math类Math提供了数学计算的静态方法:abs/min/max pow/sqrt/exp/log/log10 sin/cos/tan/asin/acos...常量:PI=3.14159... E=2.71828Math.random()生产一个随机数:0<=随机数<1 可用于生成某个区间的随机数//0<=R<1double x1 = Math.random();//MIN <= R < MAXlong MIN = 1000;原创 2020-07-30 21:58:46 · 210 阅读 · 1 评论 -
2Java面向对象编程——6java核心类——5枚举类(廖雪峰)
枚举类1.直接定义常量public class Main { public static void main(String[] args) { int day = 5; String color = "a"; if (day == Weekend.FRI) { System.out.println(day); } if (color.equals(Color.BLUE)) { System.out.println(color); } }}clas原创 2020-07-30 19:39:57 · 174 阅读 · 0 评论