JDK常用API

2023-05-16

本篇介绍Java基础中常用API使用,当然只是简单介绍,围绕重要知识点引入,巩固开发知识,深入了解每个API的使用,查看Java API文档是必不可少的。

一、java.lang包下的API

Java常用基础包,在开发中会自动导入到代码环境中,不需要import。

1.基本数据类型/包装类

(1)基本数据类型:byte、short、int、long、float、double、char、boolean

(2)包装类:

  • Byte:–提供了将字节数据转换为其他类型的方法,从Number抽象类继承过来.decode:将各种进制的数据内容的字符串,转换为十进制标识的字节类型,数字进制的标识符:无标识符:按十进制转换;ox、OX、#:按十六进制转换;o:按八进制转换.
  • Short、Integer –将short、Integer装换为其数据类型的方法,从Number抽象类继承过来。decode与Byte类中的decode方法一样可进行不同进制的装换。parseShort、parseInt、parseByte一样,可以进行不同的进制装换值。

             注意:Integer十进制转其他进制的方法:toBinaryString()、toHexString()、toOctalString()。

  • Float、Double –isInfinite():用于判断数字是否有趋近无穷大,无法完整描述的情况。isNaN():判断浮点数据是否为有效数据(浮点类型参与运算后用于判断是否有效)

       注:valueOf、parseXXX方法可以将字符串形式的值装换为数字。

(3)包装类与基本数据类型之间可以实现数据类型的自动转换,即装箱和拆箱。

          装箱:自动将基本数据类型转换为其对应的包装类.

          拆箱:自动将包装类型转换为基本数据类型.

2.数学运算类:Math;其重要方法有:

        abs() :获取绝对值函数.

        acos()、asin():反余弦、反正弦函数(以弧度为参数值PI结合运算).

        cbrt():立方根函数.

        cos()、sin():三角余弦、三角正弦函数(以弧度为参数值PI结合运算).    

        max()、min():获取两个数值中的最大值或最小值.

        log()、log10():对数.

        random():获取随机数.

        round():四舍五入(获得整形值).

        floor():得到小于该数的最小整数.

        ceil():得到大于该数的最大整数.

        sqrt():平方根.

3.字符串类

(1)String:不需要通过new就可以直接创建String对象;+运算符可以用来拼接String内容.

        方法:

              startsWith():字符串是否由指定字符开头.

              endsWith():字符串是否由指定字符结尾.

              indexOf():返回子串在父串中第一次出现的下标(从左起).

              lastIndexOf():返回子串在父串最后一次出现的下标(从右起).

              split():按特殊字符拆分字符内容

              replace():用新字符串内容,替换父串中原有的字符串内容.

              matches():字符验证方法。

        正则表达式:由一组通用的特殊字符所组成的一套字符串内容验证规则,String通过matchs()方法来使用正则表达式验证字符串内容是否合要求.

              语法-边界匹配器:

              ^:行的开头,代表一个正则表达式的开始.

             $:行的结尾,代表一个正则表达式的结束.

             \b:标识某一个单词的开头或结尾.

        字符:

            [abc]:a或b或c的任意一个.

            [^abc]:除a、b、c以外的任意字符.

            [a-zA-Z]:所有字母(大小都包括).

            [a-d[m-p]]:a到d或m到p([m-p]将该内容作为整体)

             [a-z&&[def]]:a-z和def两个表达式都满足.

             [a-z&&[^bc]]、[a-z&&[^m-p]]

             [0-9]

        预定义字符:

             .:代表任意字符.

             \d:字符内容只能是[0-9]的数字.

             \s:空白字符.

             \w:所有字符大小写、下划线、数字

        反向字符:\D、\S、\W

        数量词:?:一次或一次也没有.

                         *:零次或多次.

                         +:一次或多次.

                         {n}:n代表一定要出现的次数

                         {n,m}:n<=出现次数<=m.

        拓展:

        零宽断言\捕获-是使用正则表达式来获取字符串中对应内容的所在位置.(不能结合String的matchs方法),而应该结合String的replaceAll、replaceFirst方法使用,用来找到替换需要替换的内容)。语法:

        (?=exp):若字符串中有内容的结尾与exp匹配,则满足该断言.

        (?<=exp):若字符串中的内容的开头与exp匹配,则满足该断言.

        (?!=exp):若字符中的内容的结尾与exp不匹配,则满足该断言.

        (?<!exp):若字符串的内容的开头与exp不匹配,则满足该断言.

(2)StringBuffer:对于内容变动较大的字符串内容处理能力较好(线程安全)

          常用方法:append()、delete()、insert()                  

          与String的区别:String类,在有新内容追加时,是结合原有字符串内容创建新的字符串对象(性能较低)

(3)StringBuilder:对于内容变动较大的的字符串内容处理能力较好(线程不安全 JDK1.5)

          常用方法:append()、delete()、insert()

          注意:StringBuffer和StringBuilder为可变字符串类型:其字符内容可以灵活变动(追加、删除、插入)

 

(4)   其他程序的调用类:

        Runtime: 

        作用:获取java虚拟机的运行信息(可使用的CPU数量、所分配的内存大小、空闲内存).

        特点:一个虚拟机环境内有且仅有一个Runtime对象.

        方法:

                 static getRuntime():获取虚拟机对应的运行时信息.

                 static exec(String):启动子进程.                         

        Process:用于描述被JVM启动的一个子进程信息,可以通过Process让java代码与子进程通信.


二、java.util包下的API

1.日期或时间类型:

(1)Date:java平台用于描述时间信息(包括用于精确描述年、月、日、小时、分钟、毫秒信息)的基类;常用方法:

          after\before:日期比较方法.

          getTime():获取日期信息的long格式值.

          setTime(long):根据日期的long值,重新设置日期的时间点.

(2)Calendar:基于通用日历规则,提供了日期运算方法:

          set(int,int):向对应的日期级别设置(第一个参数用于日期级别).

          get(int):通过日期级别常量,获取当前日期的相关信息.

          getDisplayName(int,int,locale):按指定格式和区域语言习惯,来返回日期的描述内容(中文只对月份、星期有效).

          getFirstDayOfWeek():返回当前日期对象一周的第一天是星期几(默认1==星期天).

          static getInstance():构造日历对象实例.

          getTime():将日历对象转换成Date类型.

          setTime():将date类型转换为日历类型.

          getTimeInMillis():将日历类型转换了long格式的数据.

          setTimeInMillis(long):将long格式的日期类型转换成日历类型.

          add(int,int):可以在指定的日期级别上,对日期信息进行向前或者向后滚动(第二个参数正数向后增长,负数向前增长)

3.基于经典数据结构的集合框架

   集合对象:弥补传统的数组在批量数据存储中和访问上的不足,提供一组基于经典数据结构,并提供了对应操作方法的API来满足编程开发中对批量数据的操作要求.

(1)Iterable(接口):JDK1.5以后加入的API,为集合框架满足foreach语句提供类型的定义.   

          方法:iterator()– 基于集合内容,生成迭代器(可以提供方法依次访问集合中的对象).

(2)Collection(接口):JDK平台上,所有集合框架的根接口,是用于存储多个对象(数据)的集合类型,数据可以是任何合法类型,可以有各种存储验证(是否为空,是否重复,是否有序);方法:

          add(Objectobj):向集合追加新的对象

          addAll(Collection colletion):将另一个集合的内容,追加到当前集合内.

          contains(Object c):判断对象是否为集合的成员.

          containsAll(Collections c):判断两个集合是否存在包含情况.

          Iterator():将集合内的数据转换为迭代器的格式来存储,迭代器便于按顺序访问集合内的元素.

          retainAll(Collection c):留下两个集合都包含的元素.

          size():集合中元素的个数.

          toArray():将集合对象的内容装换为对象数组.

(3)List:有序的集合

          特点:通常允许重复的元素,允许null元素,有序,对应元素都有下标来标识,没有长度限制,可以自动的根据需要改变长度.

.         方法:get(intindex):通过下标获取集合列表中的某一个元素.      

                      set(int index,E element):向列表中的指定项中设置元素(若原下标位置有值,则会替换).

                      subList(int fromIndex,inttoIndex):截取集合列表中的一部分生成新的列表对象.

           实现类:

  • ArrayList

        特点:底层基于数组来实现列表的功能,内部用于存储数据的结构是一个Object[](Object[]数组的默认大小为10)。

        建议:其ArrayList的初始化大小,尽可能根据实际操作数据的大小来设定(避免因数组增长导致效率低下的问题).不善于对内容变动较大的集合数据提供存储。

  • LinkedList

        特点:底层基于链表的结构来实现存储功能.(链表是非常灵活的顺序存储结构,基于指针,将数据相互串联起来)。

        建议:在数据经常需要进行修改的情况下使用.若只需要对数据进行查询、获取等操作,则效率比不上ArrayList。

  • Vector

        特点:是线程安全的API(让多个同时执行线程有序的访问Vector中的数据,但会消耗相对应的内存)。

 (4)Set:不包含重复元素的集合

           特点:不允许有重复元素,最多包含一个null元素,不一定是有序存储。

           方法:Collection接口上定义的方法、add()、addAll()、iterator()、remove()

           实现类:

  • HashSet – 实现基于Hash表来维护数据,不保证数据的顺序不变,但可以保证数据的唯一性。(保存数据:通过Hash表来保存数据,但不会保存重复的数据)
  • TreeSet –按照二叉树的结果来存放数据,保证数据的顺序;采用红黑树(二叉树):小的值放在左节点,大的值放在右节点.获取数据时,采用中序访问节点,将数据内容按大小排列比大小:会使用对象的compareTo()方法比较两个对象的大小由TreeSet保存的对象,最好能提供对Compareble接口的实现,并给出compareTo方法的实现。
  • LinkedHashSet

       特点:基于Hash表来存放数据,但会对数据的插入顺序进行维护,按照数据放入Set集合的顺序给输出来,将对象在hash表中的hash值,按插入顺序保存在链表中,在生成的Iterator时,根据链表的结构一次访问获取对象,操作性能较低,在大数据量的集合操作上不建议使用。

(5)Iterator :将数据有序的组织在一起,并提供按序访问的方法:

                            hasNext():判断迭代器是否还有遍历到的元素

                            next():可以得到向下遍历的对象.

(6)Map :基于键-值映射的关系来搭建存储结构,在整个结构中使用key值来唯一标识对象.(在JDK1.2之后出现用于替换原有API中的Dictionary类的作用)。常用方法:                                    put(key,value)

                       get(key)

                       remove()

                       values():将结构中存储的所有值都以对象的形式返回

                       keySet():将结构中的所有key值,以set结构返回.

          实现类:

          HashMap

          TreeMap: –底层基于二叉树结构来存储数据,会根据key来作为二叉树的节点关键属性来进行排序操作,按key值的从小到大进行排列

 (7)Dictionary –也是基于键-值结构,但已经过期。

           实现类:

           HashTable:基于哈希表实现键值对应,是一个线程安全的API。

           Properties:提供一个属性信息的键值对存储结果,可以与*.properties文件使用(key:属性名;value:属性值).

(8)Collections:定义了多种操作集合对象的方法(查找、插入、排序等方法)

          sort()、binarySearch()、copy()、max()、min()、reverse()


三、java.io包下的API

        这个包下的api即java输入输出操作API,什么是

 输入输出操作?即向程序输入信息,向程序外部输出信息,数据被输入或者是输出的基础单位是字节byte,输入输出流按流的功能分可分为:

        低级流(节点流):自己具有流的写入或者读取能力的流.

        高级流(功能流):基于低级流的功能,实现流操作功能的扩张.

1.字节流

(1)InputStream(输入流) :表示字节输入流的所有类的超类,常用方法有:

                 available() :获取总字节数,获取缓存区中的字节个数

                 close():负责释放IO资源,关闭流操作.

                 mark():在输入输出流的字节位置上设标记,为后面reset反复读取该段字节做准备.

                 reset():将流的操作重新定位

                 markSupported():用于判断mark方法或reset方法是否可用.

                 int read():用于读取一个字节信息:返回值是读取到的字节,若读到文件末尾,则返回-1.

                 int read(byte[] b):将字节读入到byte[]数组中:返回值是读取到的字节数,若读到文件末尾,则返回-1.(将字节读取到byte[]数组中第off位开始之后的位置,读取长度为len个字节)

(2)OutputStream:表示输出字节流的所有类的超类,常用方法有:

                 close():关闭流

                 flush():将缓存中的字节,清空输出.

                 write(byte[] b):将字节数组中的内容输出

                 write(int b):将单个字节输出.

                 write(byte[] b,intoff,int len):将字节数组中从off开始的信息输出,共输出len个字节.

(3)FileInputStream extends InputStream --(文件输入流)

(4)FileOutputStreamextends OutputStream --(文件输出流),构造方法:FileOutputStream(Stringname,boolean append),其中append为ture时:追加内容到文件尾部.

(5)FilterInputStream:输入过滤流,负责在其他流基础上扩展新的功能

(6)FilterOutputStream:输出过滤流,负责在其他基础上扩展新的功能.

(7)BufferedInputStream:为流操作提供字节缓存,减少直接申请的IO读取的次数;实现原理是在内存中创建了字节数组,缓存字节信息.

(8)BufferedOutputStream :为流操作提供字节缓存,减少直接申请IO写出的次数.

(9)DataInputStream:以java基本数据类型的格式读取信息.

(10)DataOutputStream :以java基本数据类型的格式输出信息.

(11)ObectInputStream:对象流输入,可以将对象信息整体读入.(注意:对象必须实现java.io.Serializable可序列化)

(12)ObjectOutputStream:对象流输出,可以将对象信息整体输出(注意:对象必须实现java.io.Serializable可序列化).

             注意:对象流使用的场景是大型数据的缓存,缓存一般会放在内存中。把数据量较大,且交互次数较低的数据放到文件中保存,再从文件中将数据还原内存;或者放在分布式系统(通过网络通信);如:发送远程调用的请求信息,远程调用的处理结果.

(13)压缩流(基于字节流),API:java.util.zip.*包下的类,是封装基于ZIP标准进行无损压缩的API

            ZipOutputStream:基于zip格式生成压缩文件,方法:putNextEntry(),closeEntry()

            ZipInputStream:读取ZIP文件内容.可以理解wie解压缩.

            ZipEntry:在压缩内容中代表一项压缩条目(压缩条目是一个独立的信息存储单元,一般用于将某一个文件的内容单独存储起来).

 2.字符流

(1)Reader:表示字符输入流的所有类的超类,常用方法有:read()、close()。

(2)Writer:表示字符输出流的所有类的超类,常用方法有:write()、flush()、close()。

(3)BufferedReader/BufferedWriter:为流操作提供字符缓存,减少直接申请的IO读取/写入的次数。

拓展:File :系统上一个文件资源,包括文件(*.txt、*.exe、*.doc等)和文件夹(用于组织和存放其他文件信息);作用:

  • 获取文件夹的子文件信息—listFile()
  • 获取文件的属性,如getName() –获取文件的名字.
  • 判断是否为文件目录—isDirectory()返回结果是ture为目录,false为其他内容.
  • 判断是否为文件—isFile()返回结果是ture为文件,false为其他内容.还可以修改文件和删除文件.

 拓展:设计模式,是指在编程的开发过程中,被反复论证所总结出来的编程经验.这些经验被认定为解决具体问题的最佳方案.

 eg:装饰模式—面向对象的常用模式之一.符合开关原则:原有代码不发生任何改变,而对原有代码进行扩展,结构:

         目标类(FileInputStream、FileOutputStream等)。

         装饰类(BufferdInputStream、BufferedOutStream等),与目标类都有相同的父类或接口。

         用途:改进原有API的功能—修改原有的方法,丰富原有API的实现—能实现的功能更多。

         最纯的装饰模式:目标类和装饰类从结构上一模一样(BufferedInputStream\BufferedOutputStream)。

         装饰的”另类”:对类的结构做出调整,如ObjectInputStream\ObjectOutputStream(readObject()\writeObject() )和DataInputStream\DataOutputStream( readXXX()\writeXXX() )。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JDK常用API 的相关文章

  • 如何添加更多数据存储在 jenkins Rest api 中

    为了使问题变得简单 我知道我可以通过以下方式获取一些构建信息https jenkins server https jenkins server api json xml python 我获得了有关该构建记录的大量信息 但是 我想向该构建记录
  • 响应中的有效 JSON

    我正在开发客户端和服务器应用程序 遇到了一个有趣的问题 我们正在创建一个 Restful API 并通过 JSON 响应与客户端进行通信 执行 DELETE 时 我们将返回 200 OK 和空白响应 我们的客户收到 200 OK 但解析 J
  • 获取 Youtube 上的游戏直播列表

    我正在尝试使用 Youtube 数据 API 来获取当前与游戏相关的直播流列表 但我找不到任何符合我需要的端点并返回每个频道的观看者数量 你们知道我该如何做到这一点吗 Thanks 游戏直播列表 videoCategoryId 20 是 游
  • ReSharper API...呃...它在哪里?

    好吧 我一定正在享受金发时刻 但我一生都找不到去哪里 下载 ReSharper API 与我获得的项目一起使用here http devlicio us blogs hadi hariri archive 2010 01 12 writin
  • 我们可以使用 axios 的 onDownloadProgress 来加载 API 吗?

    我需要使用 axios 创建一个用于在 React 项目中加载 API 的进度条 我为此发现了 onDownloadProgress 函数 但我不知道我们是否可以使用它来获取诸如加载百分比之类的信息 或者它是否仅用于文件下载 所以我不确定我
  • 使用 PHP 发布到 Blogger

    我在使用 PHP 的 Blogger API 时遇到问题 我需要的是能够将新的博客文章发布到我的博客帐户 我使用的代码取自 Google API 页面 http code google com intl nl apis blogger do
  • 通过 Office API 将多个 Word 文档保存为 HTML

    我有大量的Word文档需要解析 由于它们都是从同一个模板创建的 我认为最好的方法是将它们保存为 HTML 文件并解析 HTML 本身 虽然将单个 Word 文档保存为 HTML 相当容易 但我还没有找到从 Word 内部执行批量过程的方法
  • useState 由于某种原因没有更新?

    当我尝试使用 axios 从后端 API 获取一些数据 并在由于某种原因获得结果后设置状态时 状态不会更新 当我尝试使用状态时 它只会向我显示一个空数组 但有趣的是当我console log res data 它会毫无问题地向我显示我的列表
  • 将 Django 模型映射到外部 API

    上下文 我有一个外部 API 提供数据并允许发布新数据或修补现有数据 API 响应示例 response requests get http api band 4 print response json id 4 name The Beat
  • 如何使用php api检查电子邮件或手机paypal帐户状态?

    如何使用 php api 检查电子邮件或手机 Paypal 帐户状态 好的 如果我想汇款到此电子邮件贝宝 email protected cdn cgi l email protection 或手机 1234567890 汇款前 我可以检查
  • 如何从网站中提取冠状病毒病例?

    我正在尝试从网站中提取冠状病毒 https www trackcorona live https www trackcorona live 但我得到了一个错误 这是我的代码 response requests get https www t
  • 如何在 Google Maps API 中指示语言?

    就像你访问一样maps google com tw or maps google co kr or maps google co jp 您可以看到每个国家 地区都显示自己的语言 我可以在 Google 地图 API 中使用任何属性来动态设置
  • 使用 python 更新 Google 搜索方法

    我试图使用xgoogle https github com pkrumins xgoogle但我已经 3 年没有更新了 即使我设置每页 100 个结果 我也只能得到不超过 5 个结果 如果有人使用 xgoogle 没有任何问题 请告诉我 现
  • XML-RPC 与 REST

    我打算在这里构建一个小型服务器 并想为其创建一个 API 我正在决定什么是更好的并且已经排除了SOAP因为在我看来那件事是一团糟 我只剩下REST and XML RPC 我真的很喜欢XML RPC 它实现起来非常简单 并且足够常规 所有客
  • Twitter Streaming API 使用的官方编码?是UTF-8吗?

    Twitter 流 API 的官方编码是什么 根据我所看到的 我最好的猜测是 UTF 8 但我想避免做出假设 我见过的 Twitter 网站上唯一暗示他们使用什么作为官方编码的部分是在这里 Twitter 不想因为我们使用 UTF 8 或相
  • Google Sheets API v4 和 valueInputOption

    我的电子表格中有三列 第一个是日期 第二个和第三个是简单字符串 当我批量上传数据时valueInputOption RAW 我的日期列得到错误的结果 所有日期前面都有一个看不见的撇号 字符串列没问题 当我使用valueInputOption
  • Streamlabs API 405 响应代码

    我正在尝试使用Streamlabs API https dev streamlabs com Streamlabs API 使用 Oauth2 来创建应用程序 因此 首先我将使用我的应用程序的用户发送到一个授权链接 其中包含我的应用程序的客
  • 警告:访问循环依赖内模块导出的不存在属性“MongoError”

    我正在使用节点执行 API 并使用 Mongoose 当我给一个yarn dev启动我的 Nodemon Mongo 出现错误 我不知道如何解决这个问题 有人有什么想法吗 我使用的是 MongoDB Atlas 数据库 就在出现以下错误之后
  • 如何为 ApplicationController 中 after_action 过滤器中的所有操作渲染 json?

    是否可以在 Rails ApplicationController 中创建一个 after filter 方法 该方法在每个操作上运行并呈现为 JSON 我正在构建一个 API 并且希望将控制器中的每个操作的输出呈现为 JSON 客户控制器
  • 为 NFL api 生成访问令牌

    NFL 有一个 API 服务 link https api nfl com docs getting started index html https api nfl com docs getting started index html

随机推荐

  • CentOS 7安装Python 3.6,pip3报错问题

    在CentOS 7上安装Python3 6 3后 xff0c 在使用pip命令时报如下错误 Traceback most recent call last File 34 usr Python3 6 3 lib python3 6 site
  • SpringCloud调用接口流程

    Spring Cloud调用接口过程 Spring Cloud 在接口调用上 xff0c 大致会经过如下几个组件配合 xff1a Feign gt Hystrix gt Ribbon gt Http Client xff08 apache
  • seata的部署和集成

    一 部署Seata的tc server 1 下载 首先我们要下载seata server包 xff0c 地址在http seata io zh cn blog download html 当然 xff0c 课前资料也准备好了 xff1a 2
  • 强化学习:Q-learning与DQN(Deep Q Network)

    文章目录 Q learning一些名词epsilon greedy算法流程 DQN记忆库 Experience replay 固定Q 目标 Fixed Q target 算法流程 Q learning是一种很常用很传统的强化学习方法 xff
  • 解决windows FTP共享、局域网共享文件等解决方案。

    nbsp nbsp nbsp 最近单位在局域网共享了一个电脑 有自己的IP地址 直接在运行输入 192 168 nbsp 按理说就能访问 nbsp nbsp nbsp 但是别人的机器都可以 只有我的不行 研究了半天终于找到原因 这个原因还真
  • mariaDB安装与配置

    cd到 etc yum repos d 目录下 xff0c 使用touch MariaDB repo创建MariaDB repoMariaDB repo文件 vim MariaDB repo 进入配置文件 在官网找到配置信息 选择阿里云镜像
  • archlinux安装

    转载地址 https wiki archlinux org index php Beginners 27 Guide 28 E7 AE 80 E4 BD 93 E4 B8 AD E6 96 87 29 欢迎 xff0c 本文档将指导您安装
  • 2030年的人工智能与生活(AI and Life in 2030)

    作者 xff1a Anqi 链接 xff1a https zhuanlan zhihu com p 22308870 来源 xff1a 知乎 著作权归作者所有 商业转载请联系作者获得授权 xff0c 非商业转载请注明出处 第一部分 xff1
  • 如何将origin pro的界面切换变成中文显示?

    origin其实自带中文界面 xff0c 很多朋友反馈不知道如何设置 xff0c 软件里面也没看到有改变语言的选项 xff0c 它设置需要更改注册表 xff0c 相对复杂一点 那么今天就手把手的教大家如何将origin的语言改为中文吧 wi
  • Java高并发秒杀平台(Redis + RabbitMQ)

    Seconds Kill 本项目是一个模拟高并发环境下基于 SpringBoot 的秒杀购物平台 为了减少对数据库的直接访问 xff0c 通过 Redis 实现了缓存优化 xff1b 并通过 RabbitMQ 消息中间件来接收大量的并发请求
  • Ubuntu 配置

    配置源 如果是网通或者教育网建议选择上海交大的源 sudo cp etc apt sources list etc apt sources list backup sudo gedit etc apt sources list 用以下内容替
  • vncserver: Failed command ‘/etc/X11/Xvnc-session‘: 256!

    安装vncserver启动时出现如下报错 xff1a Starting applications specified span class token keyword in span etc X11 Xvnc session Log spa
  • Windows Media Player SDK 简介

    Windows Media Player SDK 简介 2002年9月 适用于 xff1a Microsoft Windows Media Player 摘要 xff1a 了解如何更改 Windows Media Player 的外观和行为
  • Linux glibc幽灵(GHOST)漏洞检测及修复方案

    安全研究人员近日曝出一个名为幽灵 xff08 GHOST xff09 的严重安全漏洞 xff0c 这个漏洞可以允许攻击者远程获取操作系统的最高控制权限 xff0c 影响市面上大量Linux操作系统及其发行版 该漏洞CVE编号为CVE 201
  • Byte Buddy 入门教程

    为什么需要运行时代码生成 我们知道 xff0c Java 是一种强类型的编程语言 xff0c 即要求所有变量和对象都有一个确定的类型 xff0c 如果在赋值操作中出现类型不兼容的情况 xff0c 就会抛出异常 强类型检查在大多数情况下是可行
  • android graphic(14)—EGL和OpenGL ES之间的关系

    OpenGL ES EGL 例子 EGL加载OpenGL ES库 涉及的库 库的加载 小结 OpenGL ES 什么是OpenGL xff1f Open Graphics Library OpenGL is a cross language
  • 删除多余的Linux图标

    一 空间杀手 使用Docker一段时间后 xff0c 发现C盘剩余空间显著减少 究其原因 xff0c 首先 xff0c 多了Linux子系统 接着 xff0c 看看其占用的空间 xff0c 打开 AppData local 目录下的Dock
  • Web项目停止在Not binding factory to JNDI, no JNDI name configured

    三月 03 2017 9 24 50 下午 org hibernate impl SessionFactoryObjectFactory addInstance 信息 Not binding factory to JNDI no JNDI
  • if-else语句省略{}时不可以定义变量,否则报错

    public void test 带 时可以定义变量和赋值运算等语句 if true int a 61 0 else int b 61 0 不带 时 xff0c 不能定义变量 if true int a 61 0 else int b 61
  • JDK常用API

    本篇介绍Java基础中常用API使用 xff0c 当然只是简单介绍 xff0c 围绕重要知识点引入 xff0c 巩固开发知识 xff0c 深入了解每个API的使用 xff0c 查看Java API文档是必不可少的 一 java lang包下