zl程序教程

JAVA核心技术Ⅰ

  • 《Java核心技术 卷1》「建议收藏」

    《Java核心技术 卷1》「建议收藏」

    大家好,又见面了,我是你们的朋友全栈君。目录第4章 对象和类<1>静态字段和静态方法<2>初始化块<3>定义抽象类的对象变量<4>hashCode方法得到散列码<5>虚拟机中的泛型类型信息第五章 继承第6章.接口、Lambda表达式与内部类第7章 异常、断言和日志 <1>捕获多个异常<2> try-with-res

    日期 2023-06-12 10:48:40     
  • java核心技术 – 17个重要的知识点

    java核心技术 – 17个重要的知识点

    大家好,又见面了,我是你们的朋友全栈君。1.Java中没有多继承,而是用接口来代替多继承 2.运行一个已经编译的程序时,Java解释器总是从指定类的main方法中的代码开始执行,因此,执行代码中必须有一个main函数。 3.Java是典型的强类型语言,即必须声明变量的类型,Java中有8种类型,6种数值类型(4个整数型和2个浮点型)、一个字符类型和一个boolean类型。 想学习java可以

    日期 2023-06-12 10:48:40     
  • 代码审计 | Java Web 核心技术 - Servlet

    代码审计 | Java Web 核心技术 - Servlet

    0x00 前言Servlet 是 Java Web 容器中运行的小程序,Servlet 原则上可以通过任何客户端-服务端协议进行通信,但它们常与 HTTP 一起使用,因此 Servlet 通常作为 “HTTP Servlet”的简写。Servlet 是 Java EE 的核心,也是所有 MVC 框架实现的根本。0x01 Servlet 的配置版本不同,Servlet 的配置不同,Servlet 3

    日期 2023-06-12 10:48:40     
  • 读《java多线程编程核心技术》后感

    读《java多线程编程核心技术》后感

    第一章 java多线程技能进程是受操作系统管理的基本运行单元,它受系统进行资源分配和调度的一个独立单元。线程是进程中独立运行的子任务。main函数也是一个进程,并且有一个main线程。isAlive()方法判断当前的线程是否处于活动状态,也就是线程已经启动且尚未终止状态。停止线程:interrupt()方法停止线程,并不会真正停止线程,而是加一个停止标记。 interrupted()方法测试当前线

    日期 2023-06-12 10:48:40     
  • 杨晓峰-Java核心技术-9 HashMap Hashtable TreeMap MD

    杨晓峰-Java核心技术-9 HashMap Hashtable TreeMap MD

    Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina.com 杨晓峰-Java核心技术-9 HashMap Hashtable TreeMap MD 目录 目录目录第9讲 | 对比Hashtable、HashMap、TreeMa

    日期 2023-06-12 10:48:40     
  • 杨晓峰-Java核心技术-6 动态代理 反射 MD

    杨晓峰-Java核心技术-6 动态代理 反射 MD

    Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina.com 杨晓峰-Java核心技术-6 动态代理 反射 MD.md 目录 目录目录第6讲 | 动态代理是基于什么原理?典型回答考点分析知识扩展反射机制及其演进动态代理精选留言

    日期 2023-06-12 10:48:40     
  • 【Java】JavaEE的13种核心技术

    【Java】JavaEE的13种核心技术

    文章目录 1. JDBC(JavaDatabaseConnectivity)JDBC 2. JNDI(JavaNameandDirectoryInterface)JNDI 3. EJB(Enterp

    日期 2023-06-12 10:48:40     
  • 一文讲透Java核心技术之高可扩展利器SPI

    一文讲透Java核心技术之高可扩展利器SPI

    大家好,我是冰河~~ SPI的概念 JAVA SPI = 基于接口的编程+策略模式+配置文件 的动态加载机制 SPI的使用场景 Java是一种面向对象语言,虽然Java8开始支持函数式编程和Stream,但是总体来说,还是面向对象的语言。在使用Java进行面向对象开发时,一般会推荐使用基于接口的编程,程序的模块与模块之前不会直接进行实现类的硬编码。而在实际的开发过程中,往往一个接口会有多个实现类

    日期 2023-06-12 10:48:40     
  • Java核心技术卷I基础知识1.2.2 面向对象

    Java核心技术卷I基础知识1.2.2 面向对象

    简单地讲,面向对象设计是一种程序设计技术。它将重点放在数据(即对象)和对象的接口上。用木匠打一 个比方,一个“面向对象的”木匠始终关注的是所制作的椅子,第二位才是所使用的工具;一个“非面向对 象的”木匠首先考虑的是所用的工具。在本质上,Java的面向对象能力与C++是一样的。 开发Java时面向对象技术已经相当成熟。Java的面向对象特性与C++旗鼓相当。Java与C++的主

    日期 2023-06-12 10:48:40     
  • Java核心技术卷I基础知识1.2.3 分布式

    Java核心技术卷I基础知识1.2.3 分布式

    程序能够通过URL打开和访问网络上的对象,其便捷程度就好像访问本地文件一 样。 如今,这一点已经得到认可,不过在1995年,主要还是从C++或Visual Basic程 序连接Web服务器。 Java项目是不是分布式,真有那么重要吗? 大概不知道从什么时候,「微服务」「分布式」这两个词又再次频繁出现在我的视线里。 「微服务」「分布式」在我刚毕业的时候还是比较关注

    日期 2023-06-12 10:48:40     
  • Java核心技术卷I基础知识1.2.5 安全性

    Java核心技术卷I基础知识1.2.5 安全性

    Java适用于网络/分布式环境。为了达到这个目标,在安全方面投入了很大精力。使用Java可以构建防病 毒、防篡改的系统。 从一开始,Java就设计成能够防范各种攻击,其中包括: 运行时堆栈溢出。如蠕虫和病毒常用的攻击手段。 破坏自己的进程空间之外的内存。 未经授权读写文件。 原先,Java对下载代码的态度是“尽管来吧!”。不可信代码在一个沙箱环境中执行,在这

    日期 2023-06-12 10:48:40     
  • Java核心技术卷I基础知识1.2.6 体系结构中立

    Java核心技术卷I基础知识1.2.6 体系结构中立

    编译器生成一个体系结构中立的目标文件格式,这是一种编译过的代码,只要有Java运行时系统,这些编 译 后的代码可以在许多处理器上运行。Java编译器通过生成与特定的计算机体系结构无关的字节码指令来实 现 这一特性。精心设计的字节码不仅可以很容易地在任何机器上解释执行,而且还可以动态地翻译成本地机 器 代码。 当时,为“虚拟机”生成代码并不是一个新思路。

    日期 2023-06-12 10:48:40     
  • Java核心技术卷I基础知识1.2.7 可移植性

    Java核心技术卷I基础知识1.2.7 可移植性

    与C和C++不同,Java规范中没有“依赖具体实现”的地方。基本数据类型的大小以及有关运算都做了明确的说明。 例如,Java中的int永远为32位的整数,而在C/C++中,int可能是16位整数、32位整数,也可能是编译器提供商指定的其他大小。唯一的限制 只 是int类型的大小不能低于short int,并且不能高于long int。在Java中,数据类型具有固定的大小,这消

    日期 2023-06-12 10:48:40     
  • Java核心技术卷I基础知识1.2.8 解释型

    Java核心技术卷I基础知识1.2.8 解释型

    Java解释器可以在任何移植了解释器的机器上执行Java字节码。由于链接是一个 增量式且轻量级的过程,所以,开发过程也变得更加快捷,更加具有探索性。 这看上去很不错。用过Lisp、Smalltalk、Visual Basic、Python、R或Scala的 人都知道“快捷而且具有探索性”的开发过程是怎样的。你可以做些尝试,然后 就能立即看到结果。Java开发环境并没有将

    日期 2023-06-12 10:48:40     
  • Java核心技术卷I基础知识1.2.10 多线程

    Java核心技术卷I基础知识1.2.10 多线程

    如今,我们非常关注并发性,因为摩尔定律行将完结。我们不再追求更快的处理器,而是着眼于获得更多的 处理器,而且要让它们一直保持工作。不过,可以看到,大多数编程语言对于这个问题并没有显示出足够的 重视。 Java在当时很超前。它是第一个支持并发程序设计的主流语言。从白皮书中可以看到,它的出发点稍有些不 同。当时,多核处理器还很神秘,而Web编程才刚刚起步,处理器要花很长时间

    日期 2023-06-12 10:48:40     
  • Java核心技术卷I基础知识1.4 Java发展简史

    Java核心技术卷I基础知识1.4 Java发展简史

    本节将介绍Java的发展简史。这些内容来自很多出版资料(最重要的是SunWorld的在线杂志1995年7月刊上对Java创建者的专访)。 Java的历史要追溯到1991年,由Patrick Naughton和James Gosling(一个全能的计算机奇才)带领的Sun公司的工程师小组想要设计一种小型的计算机语言,主要用于像有线电视转换盒这类的消费设备。由于这些消费设备的处理能力和内存都很有

    日期 2023-06-12 10:48:40     
  • Java核心技术卷I基础知识2.1 安装Java开发工具包

    Java核心技术卷I基础知识2.1 安装Java开发工具包

      本章主要介绍如何安装Java开发工具包(JDK)以及如何编译和运行不同类型的程序:控制台程序、图形化应用程序以及applet。运行JDK工具的方法是在终端窗口中键入命令。然而,很多程序员更喜欢使用集成开发环境。为此,将在稍后介绍如何使用免费的开发环境编译和运行Java程序。尽管学起来很容易,但集成开发环境需要吞噬大量资源,编写小型程序时也比较烦琐。一旦掌握了本章的技术,并选定了自己的开发工具

    日期 2023-06-12 10:48:40     
  • Java核心技术卷I基础知识2.3 使用集成开发环境

    Java核心技术卷I基础知识2.3 使用集成开发环境

    上一节中,你已经了解了如何从命令行编译和运行一个Java程序。这是一个很有用的技能,不过对于大多数日常工作来说,都应当使用集成开发环境。这些环境非常强大,也很方便,不使用这些环境有些不合情理。我们可以免费得到一些很棒的开发环境,如Eclipse、NetBeans和IntelliJ IDEA程序。这一章中,我们将学习如何从Eclipse起步。当然,如果你喜欢其他开发环境,学习本书时也完全可以使用

    日期 2023-06-12 10:48:40     
  • Java核心技术卷I基础知识3.1 一个简单的Java应用程序

    Java核心技术卷I基础知识3.1 一个简单的Java应用程序

      现在,假定已经成功地安装了JDK,并且能够运行第2章中给出的示例程序。我们从现在开始将介绍Java应用程序设计。本章主要介绍程序设计的基本概念(如数据类型、分支以及循环)在Java中的实现方式。 非常遗憾,需要告诫大家,使用Java编写GUI应用程序并不是一件很容易的事情,编程者需要掌握很多相关的知识才能够创建窗口、添加文本框以及能响应的按钮等。介绍基于GUI的Java应用程序设计技术与本

    日期 2023-06-12 10:48:40     
  • Java核心技术卷I基础知识3.3.5 boolean类型

    Java核心技术卷I基础知识3.3.5 boolean类型

    boolean(布尔)类型有两个值:false和true,用来判定逻辑条件。整型值和布尔值之间不能进行相互转换。        C++注释:在C++中,数值甚至指针可以代替boolean值。值0相当于布尔值false,非0值相当于布尔值true。在Java中则不是这样。因此,     Java程序员不会遇到下述麻烦:   在C++中这个测试可以编译运行,其结果总是false。

    日期 2023-06-12 10:48:40     
  • Java核心技术卷I基础知识3.5.2 数值类型之间的转换

    Java核心技术卷I基础知识3.5.2 数值类型之间的转换

    经常需要将一种数值类型转换为另一种数值类型。图3-1给出了数值类型之间的合法转换。 在图3-1中有6个实心箭头,表示无信息丢失的转换;有3个虚箭头,表示可能有精度损失的转换。例如,123 456 789是一个大整数,它所包含 的位数比f?loat类型所能够表达的位数多。当将这个整型数值转换为f?loat类型时,将会得到同样大小的结果,但却失去了一定的精度。   当使用上面两个数

    日期 2023-06-12 10:48:40     
  • Java核心技术卷I基础知识3.5.5 自增与自减运算符

    Java核心技术卷I基础知识3.5.5 自增与自减运算符

    当然,程序员都知道加1、减1是数值变量最常见的操作。在Java中,借鉴了C和C++的做法,也提供了自增、自减运算符:n++将变量n的当前值加 1,n--则将n的值减1。例如,以下代码:   将n的值改为13。由于这些运算符会改变变量的值,所以它们的操作数不能是数值。例如,4++就不是一个合法的语句。 实际上,这些运算符有两种形式;上面介绍的是运算符放在操作数后面的“后缀”形式。

    日期 2023-06-12 10:48:40     
  • Java核心技术卷I基础知识3.5.7 位运算符

    Java核心技术卷I基础知识3.5.7 位运算符

    处理整型类型时,可以直接对组成整型数值的各个位完成操作。这意味着可以使用掩码技术得到整数中的各个位。位运算符包括:   这些运算符按位模式处理。例如,如果n是一个整数变量,而且用二进制表示的n从右边数第4位为1,则   会返回1,否则返回0。利用 并结合使用适当的2的幂,可以把其他位掩掉,而只保留其中的某一位。       注释:应用在布尔值上时, 和|运算符也会得到一个布尔值。这些

    日期 2023-06-12 10:48:40     
  • Java核心技术卷I基础知识3.6.1 子串

    Java核心技术卷I基础知识3.6.1 子串

    substring方法的第二个参数是不想复制的第一个位置。这里要复制位置为0、1和2(从0到2,包括0和2) 的字符。在substring中从0开始计数,直到3为止,但不包含3。 substring的工作方式有一个优点:容易计算子串的长度。字符串s.substring(a, b)的长度为b-a。例如,子 串“Hel”的长度为3-0=3。  Java基础知识之 throw

    日期 2023-06-12 10:48:40     
  • Java核心技术卷I基础知识3.6.6 码点与代码单元

    Java核心技术卷I基础知识3.6.6 码点与代码单元

    Java字符串由char值序列组成。从3.3.3节“char类型”已经看到,char数据类型是一个采用UTF-16编码表示Unicode码点的代码单元。大多数的常用Unicode字符使用一个代码单元就可以表示,而辅助字符需要一对代码单元表示。 length方法将返回采用UTF-16编码表示的给定字符串所需要的代码单元数量。例如:   要想得到实际的长度,即码点数量,可以调用:   调

    日期 2023-06-12 10:48:40     
  • Java核心技术卷I基础知识3.6.7 String API

    Java核心技术卷I基础知识3.6.7 String API

    Java中的String类包含了50多个方法。令人惊讶的是绝大多数都很有用,可以设想使用的频繁非常高。下面的API注释汇总了一部分最常用的方法。       注释:可以发现,本书中给出的API注释会有助于理解Java应用程序编程接口(API)。每一个API的注释都以形如java.lang.String的类名开始。(java.lang包的重要性将在第4章给出解释。)类名之后是一个或多个方法的名

    日期 2023-06-12 10:48:40     
  • Java核心技术卷I基础知识3.7.1 读取输入

    Java核心技术卷I基础知识3.7.1 读取输入

    、 前面已经看到,打印输出到“标准输出流”(即控制台窗口)是一件非常容易的事情,只要调用System.out.println即可。然而,读取“标准输入流”System.in就没有那么简单了。要想通过控制台进行输入,首先需要构造一个Scanner对象,并与“标准输入流”System.in关联。   (构造函数和new操作符将在第4章中详细地介绍。) 现在,就可以使用Scanner类的各种方法

    日期 2023-06-12 10:48:40     
  • Java核心技术卷I基础知识3.7.2 格式化输出

    Java核心技术卷I基础知识3.7.2 格式化输出

    可以使用System.out.print(x)将数值x输出到控制台上。这条命令将以x对应的数据类型所允许的最大非0数字位数打印输出x。例如:   打印   如果希望显示美元、美分等符号,则有可能会出现问题。 在早期的Java版本中,格式化数值曾引起过一些争议。庆幸的是,Java SE 5.0沿用了C语言库函数中的printf方法。例如,调用   可以用8个字符的宽度和小数点后两个

    日期 2023-06-12 10:48:40     
  • Java核心技术卷I基础知识3.7.3 文件输入与输出

    Java核心技术卷I基础知识3.7.3 文件输入与输出

    要想对文件进行读取,就需要一个用File对象构造一个Scanner对象,如下所示:   如果文件名中包含反斜杠符号,就要记住在每个反斜杠之前再加一个额外的反斜杠: “c:\\mydirectory\\myf?ile.txt”。       注释:在这里指定了UTF-8字符编码,这对于互联网上的文件很常见(不过并不是普遍适用)。读取一个文本文件时,要知道它的字符编码——更多信息参见卷Ⅱ第

    日期 2023-06-12 10:48:40     
  • Java核心技术卷I基础知识3.8.1 块作用域

    Java核心技术卷I基础知识3.8.1 块作用域

    块(即复合语句)是指由一对大括号括起来的若干条简单的Java语句。块确定了变量的作用域。一个块可以嵌套在另一个块中。下面就是在 main方法块中嵌套另一个语句块的示例。   但是,不能在嵌套的两个块中声明同名的变量。例如,下面的代码就有错误,而无法通过编译:         C++注释:在C++中,可以在嵌套的块中重定义一个变量。在内层定义的变量会覆盖在外层定义的变量。这样,

    日期 2023-06-12 10:48:40     
  • Java核心技术卷I基础知识3.10.5 数组排序

    Java核心技术卷I基础知识3.10.5 数组排序

      这个方法使用了优化的快速排序算法。快速排序算法对于大多数数据集合来说都是效率比较高的。Arrays类还提供了几个使用很便捷的方法,在稍后的API注释中将介绍它们。 程序清单3-7中的程序用到了数组,它产生一个抽彩游戏中的随机数值组合。假如抽彩是从49个数值中抽取6个,那么程序可能的输出结果为:     要想选择这样一个随机的数值集合,就要首先将数值1,2,…,n存入数组numbers

    日期 2023-06-12 10:48:40