Java基础 Java入门时我们都是学了什么? Java集合 ArrayList源码解析 Vector源码解析 CopyOnWriteArrayList源码解析 LinkedList源码解析 HashMap源码解析 ConcurrentHashMap 源码解析 LinkedHashMap源码解析 TreeSet源码解析 HashSet源码解析 LinkedHashSet源码解析 Java 多线程 线程的状态 线程的使用 Synchronized 线程通信 ThreadLocal Lock Java并发级别 Java内存模型 线程协作 Jdk并发包 锁优化 synchronized 关键字原理 多线程的三大核心 对锁的一些认知 ReentrantLock 新版本特性 QQ、新浪微博、码云和百度的第三方登录 如何将自己的jar包发布到mavan中央仓库 使用Java类加载SpringBoot、SpringCloud配置文件 Java8 Optional Lambda
在使用Java编写应用的时候,我们常常需要通过第三方类库来帮助我们完成所需要的功能。有时候这些类库所提供的很多API都通过throws声明了它们所可能抛出的异常。 在本文中,我们将对如何在Java应用中使用及处理Checked Exception进行简单地介绍。 Java异常简介 在详细介绍Checked Exception所导致的问题之前,我们先用一小段篇幅简单介绍一下Java中的异常。 在Java中,异常主要分为三种:Exception,RuntimeException以及Error。这三类异常都是Throwable的子类。 天使变恶魔 既然Java中的Checked Exception能够提高用户代码质量,为什么还有那么多人反对它呢?原因很简单:它太容易被误用了。
String[]args){//创建集合对象Collection<String>c=newArrayList<>();//添加元素c.add("hello");c.add("world");c.add("java it.next();if("b".equals(s)){//指向谁,那么此时就删除谁.it.remove();}}System.out.println(list);}}1.5增强for循环【应用】介绍它是JDK5之后出现的 privatestaticvoidmethod1(LinkedList<String>list){list.addFirst("qqq");System.out.println(list);}}4.泛型4.1泛型概述泛型的介绍泛型是JDK5中引入的特性 =newStudent("lisi",27);Students3=newStudent("wangwu",29);Students4=newStudent("zhaoliu",28);Students5= newStudent("qianqi",30);//把学生添加到集合ts.add(s1);ts.add(s2);ts.add(s3);ts.add(s4);ts.add(s5);//遍历集合for(Studentstudent
5)生成动态代理。 3.2 优缺点 1)优点 能够运行时动态获取类的实例,大大提高系统的灵活性和扩展性。 与 Java 动态编译相结合,可以实现非常强大的功能。 4、时期 先来看一下完整的Java程序运行过程 ┌──────────────────┐ │ Hello.java │<─── source code(源码) └────────────── 5、API 所谓API,就是Java自己提供的标准类库,开发人员可直接使用其方法。 5.1 java.lang.Class类 1)概述 是反射机制API的核心类。 5)示例 // java.lang包由系统自动加载,无需导包 public class ClassDemo { // 反射获取Class实例 public static void main(String isPublic(int mod) isProtected(int mod) isPrivate(int mod) isFinal(int mod) toString(int mod):以字符串形式返回所有修饰符 5)
注解(Annotation)是Java 5 版本之后可以在源代码中嵌入的一种补充信息,是 Java 平台中非常重要的一部分。这次的内容如下 一、注解概述 注解本质上都是一种数据类型,是一种接口类型。 到 Java 8 为止 Java SE 提供了 11 个内置注解( 5 个是基本注解,来自于 java.lang 包。 二、注解类型 1、基本注解(5个) 1.1 @Override 用来指定方法重写的,只能修饰方法并且只能用于方法重写,不能修饰其它的元素。它可以强制一个子类必须重写父类方法或者实现接口的方法。 :10 java.lang.Integer:20 java.lang.Integer:30 java.lang.String:10 java.lang.Integer:20 java.lang.Integer :30 5)@FunctionalInterface注解 // 使用@FunctionalInterface修饰函数式接口。
Springboot进阶1 Springboot依赖管理特性 利用父项目进行依赖管理 利用Springboot开发不可避免的要涉及到使用许多的依赖,而涉及到的依赖一多就可能由于依赖之间的版本问题导致错误的产生 --数据库驱动--> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId > <version>8.0.23</version> </dependency> 或是在配置文件中重写配置项,重新定义版本号 <properties> <java.version>1.8 </java.version> <mysql.version>8.0.23</mysql.version> </properties> 在实际开发中更推荐利用第二种方式定义,这种方式更便于我们对依赖进行管理
UPDATE examination_info SET tag = "Python" WHERE tag = "PYTHON"; SQL5 更新记录(二) 描述 现有一张试卷作答记录表exam_record
难的地方要来了 函数进阶 目标: 我们以前定义函数的方法有两种,命名函数和匿名函数,今天学习第三种,根据大写的F我们可以看出这是一个构造函数 语法格式: new Function('参数1
Java数组全套深入探究——进阶知识阶段5、二维数组 目录 数组学习的重要意义 二维数组概述 二维数组应用 矩阵运算 Java和Python矩阵乘法对比 Java的优势: Python的优势: 图像处理 // 给第一行第一列的元素赋值为1 array[1][2] = 5; // 给第二行第三列的元素赋值为5 在这个例子中,我们声明了一个3行4列的二维整型数组,并使用行索引和列索引来访问和赋值数组中的元素 main(String[] args) { // 定义两个矩阵A和B int[][] A = {{1, 2}, {3, 4}}; int[][] B = {{5, Java的优势: 性能:Java通常比Python更快,因为它是一种编译语言,可以在编译时优化代码。因此,对于大型矩阵乘法,Java可能会比Python更快。 综上所述,Java和Python各自具有不同的优势,选择哪种语言取决于具体的应用需求和开发环境。对于需要高性能和并发性的大型应用程序,Java可能更合适。
今天我要分享的是java里面比较常见的数据结构队列的源码分析,队列,先进先出模式,即FIFO的特点,日常生活中队列的特点也随处可见,超市购物排队,餐厅排队买饭等一系列都满足了队列的先进先出的特点,java ,写到了内存空间的分配的字样,想到了自己学习c语言的模样,那个拿着大部书《C语言程序设计》前往机房的少年,由于兴趣使然,逐渐走上了javaWeb的开发了,不过这里说明一点,学习c语言对于你理解高级语言java 何况java作为一门高级语言呢,顺势而为成就了这个语言令人喜欢的特点吧。 四,队列既然有入队,想必就会想到队列出队的方法,即poll方法,接下来我们继续看下队列出队的方法时间吧。
话接上回,继续Java集合框架的学习,这次主要介绍Map接口。 Map 集合中所有键对象的 Set 集合 clear()、isEmpty()、size()、Collection values():返回Map中所有 value 组成的 Collection 5、 import java.util.HashMap; //导包 import java.util.Iterator; import java.util.Scanner; public class MapDemo zhangsan, 2=lishi, 3=wangwu, 4=zhaoliu} 添加name1集合中所有键值对后的name集合:{1=zhangsan, 2=lishi, 3=wangwu, 4=zhaoliu, 5= wangba} name集合的大小:6 获取name集合中键为4对应的值:zhaoliu 删除name集合中键为4对应键值对后的name集合:{1=zhangsan, 2=lishi, 3=wangwu, 5=
write方法)写数据,查看的时候会转码;使用自己特有的方法写数据,查看的数据原样输出 2.2 字符打印流(PrintWriter) 继承父类:Writer,即可以调用父类的方法(Writer()方法重载:5个 ; // 导包 import java.io.FileOutputStream; import java.io.OutputStream; import java.nio.charset.StandardCharsets 要求:每一个字符串元素作为文件中的一行数据(newLine方法) import java.io.BufferedWriter; import java.io.FileWriter; import java.io.IOException 完整javabean) 2)创建ArrayList集合,泛型约束为Student类型 3)创建学生对象并将学生对象添加到集合(add()方法) 4)创建字符缓冲输出流对象BufferedWriter 5) 要求:文件中每一行数据是一个集合元素(readLine方法) import java.io.BufferedReader; import java.io.FileReader; import java.io.IOException
Java面向对象 基本类型包装类 包装类介绍 Java提供的基本类型包装类,使得Java能够更好的体现面向对象的思想,同时也使得基本类型能够支持对象操作 包装类实际上就是将我们的基本数据类型,封装成一个类 assert a > 10 : "我是自定义的错误信息"; } 常用工具类介绍 数学工具类 public static void main(String[] args) { //Math也是java.lang 包下的类,所以说默认就可以直接使用 System.out.println(Math.pow(5, 3)); //我们可以使用pow方法直接计算a的b次方 Math.abs(-1) ; System.out.println(Arrays.binarySearch(arr, 5)); //二分搜索仅适用于有序数组 } 多维数组打印: public static void ); //二分搜索仅适用于有序数组 } 多维数组打印: ~~~java public static void main(String[] args) { int[][] array = new
进入Java集合的学习,集合的数学概念是指具有某种特定性质的具体的或抽象的对象汇总而成的集体。在Java中的集合也是类似的,先学习集合的框架,这次主要介绍一下Conllection接口。 不必硬记,会用就行,更多参考java API文档。 从 Java 5 以后,可以使用泛型来限制集合里元素的类型,并让集合记住所有集合元素的类型。 new String("标准文件夹小柜"); products.addLast(p5); //向集合的末尾添加p5对象 System.out.print("****** import java.util.Iterator; //导包 import java.util.Scanner; import java.util.SortedSet; import java.util.TreeSet
static用于区分成员属于类还是对象,是Java开发中非常重要的概念。 ]args){System.out.println(Student.schoolName);//Java码周Student.schoolName="Java码周2";System.out.println 2.2继承的格式class父类{...}class子类extends父类{...}注意:Java是单继承的,一个类只能有一个直接父类。 连接,每个路径名为合法标识符且非Java关键字。4.2导包需要导包的情况:使用Java非核心包中的类。使用自己写的其他包中的类。不需要导包的情况:使用Java核心包(java.lang)中的类。 5.权限修饰符Java提供四种访问权限修饰符:public:公共的,所有地方均可访问。protected:本类、本包、其他包中的子类可访问。默认(无修饰符):本类、本包可访问。
Java支持数组这一数据结构。我们需要说明每个数组的类型和大小。 persons[1] = new Human(170); int[] a = {1, 2, 3, 7, 9}; // array size 5 public static void main(String[] args) { int[] aFrom = {1, 2, 3, 7, 9}; // array size 5 args) { Set<Integer> s1 = new HashSet<Integer>(); s1.add(4); s1.add(5); s1.add(4); s1.remove(5); System.out.println(s1); System.out.println(s1
Java的GUI编程有相对比较好的可移植性。然而,随着GUI的重心向移动端转移,Java的GUI部分地位有些尴尬。无论如何,我们还是可以通过Java来了解GUI编程的一些基本内容。 一个简单的GUI Java的GUI功能主要集中在awt和swing两个包中。awt是GUI底层包。swing包是高层的封装,更容易移植。这里将更侧重于swing包。 .*; import java.awt.*; public class HelloWorldSwing { private static void createAndShowGUI() { 匿名类是Java的一种嵌套类,它是在使用new创建对象时,使用一个{}来直接包含类的定义。在匿名类定义中,我们不需要说明类名。 更多的Java布局方式 图形元素 除了按钮之外,我们还可以在GUI中增加更多的元素,这些元素大都是JComponent的衍生类。
学习Java,书籍是必不可少的学习工具之一,尤其是对于自学者而言。废话不多说,下边就给大家推荐一些Java进阶的好书。 第一部分:Java语言篇 1. 《Java数据结构和算法》 适合对象:初级、中级、高级 介绍:这本书目前基本断货,足以说明抢手程度。作者主要使用Java语言描述了我们常用的数据结构,值得一看。 5. 第二部分:中级进阶篇 1.《重构:改善既有代码的设计》 适合对象:中级、高级 介绍:清晰揭示了重构的过程,解释了重构的原理和最佳实践方式,并给出了何时以及何地应该开始挖掘代码以及改善。 5.《代码整洁之道》 适合对象:中级、高级 介绍:讲述了一系列行之有效的整洁代码操作实践。软件工程的理想编码是无数人编出来的代码像一个人写的,这本书当作规范就不错。 第三部分:高级篇 1. 的免费直播课程 讲的是高端的知识点基础不好的误入哟 只要你有1-5年的开发经验可以加群找我要课堂链接 注意:是免费的 没有开发经验误入哦) 第四部分:进阶必学习的知识点
掌握这些集合的底层原理和性能特点,能让你在实际开发中做出更合理的选择,写出高效、稳定的代码。
2)对高优先级,使用优先调度的抢占式策略 3.3、线程的优先级 等级: MAX_PRIORITY:10 MIN_PRIORITY:1 NORM_PRIORITY:5 方法: getPriority 线程调度是Java多线程的核心,只有良好的调度,才能充分发挥系统的性能,提高程序的执行效率。 throws InterruptedException { new MyThread("低级", 1).start(); new MyThread("中级", 5) 不同的操作系统的优先级并不相同,而且也不能很好的和Java的10个优先级别对应。 java的垃圾回收也是一个守护线程。守护线的好处就是你不需要关心它的结束问题。