
Java相关
文章平均质量分 92
老九君
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
System.arraycopy()方法及对象的深复制和浅复制
1、System.arraycopy方法实现数组的复制1-1:System中提供了一个native静态方法arraycopy(),可以使用这个方法实现数组之间的复制。对于普通的一维数组来说,会复制每个数组的值到另一个数组中,即每个元素都是按值传递,修改副本不会影响原来的值。方法原型及复制复制基本类型数组的示例如下:/** * System.arraycopy的方法原型 * @param s...原创 2019-08-05 17:08:42 · 1201 阅读 · 0 评论 -
【老九学堂】【Java】小议PrintStream和PrintWriter
今天我们来简单了解下PrintStream和PrintWriter这两个类的几点区别:区别1:PrintStream主要操作byte流,而PrintWriter用来操作字符流。读取文本文件时一般用后者。Java的一个字符(char)是16bit的,一个byte是8bit的。PrintStream是写入一串8bit的数据的,PrintWriter是写入一串16bit的数据的。String缺省是...原创 2019-08-07 08:50:44 · 316 阅读 · 0 评论 -
【老九学堂】【Java】对象访问及其原理
Java中的对象访问,一般会涉及到Java栈、Java堆、方法区这三个内存区域。比如下面这句代码:Object objectRef = new Object(); 假设这句代码出现在方法体中,"Object objectRef” 这部分将会反映到Java栈的本地变量中,作为一个reference类型数据出现。而“new Object()”这部分将会反映到Java堆中,形成一块存储Obje...原创 2019-08-07 09:49:43 · 282 阅读 · 0 评论 -
【老九学堂】【Java】各类排序算法
排序大的分类可以分为两种:内排序和外排序。在排序过程中,全部记录存放在内存,则称为内排序,如果排序过程中需要使用外存,则称为外排序。下面讲的排序都是属于内排序。内排序有可以分为以下几类:(1) 插入排序:直接插入排序、二分法插入排序、希尔排序。(2) 选择排序:简单选择排序、堆排序。(3) 交换排序:冒泡排序、快速排序。(4) 归并排序(5) 基数排序当然,所需要辅助空间最多的是:归并...原创 2019-08-07 09:55:06 · 267 阅读 · 0 评论 -
【老九学堂】【Java】小议蛇形矩阵
描述: 蛇形矩阵是由1开始的自然数依次排列成的一个矩阵上三角形。 输入正整数n(n不大于100)输出,输出一个n行n列的蛇形矩阵。例如5行5列蛇形矩阵输出为:1 3 6 10 152 5 9 14 164 8 13 17 227 12 18 21 2311 19 20 24 25类似于前面的输出螺旋矩阵的方法,每一次在数组中填写新的数字都有一个...原创 2019-08-07 10:36:29 · 293 阅读 · 0 评论 -
【老九学堂】【Java】随机数详解
在我们的Java课程中通过游戏案例,我们通过随机数来对每次的攻击伤害值进行了一个赋值,那么Java中还有哪些方法可以产生随机数呢?Java中产生随机数的几种方式,随机数的概念从广义上讲,有三种:1、通过System.currentTimeMillis()来获取一个当前时间毫秒数的long型数字。【PS:这个方法返回一个从1970年1月1号0点0分0秒到目前的一个毫秒数,返回类型是long,我...原创 2019-08-07 10:41:39 · 265 阅读 · 0 评论 -
【老九学堂】【Java】位运算符
1、Java中的位运算符(操作符)位运算符主要针对二进制,它包括了:“与”、“非”、“或”、“异或”。从表面上看似乎有点像逻辑运算符,但逻辑运算符是针对两个关系运算符来进行逻辑运算,而位运算符主要针对两个二进制数的位进行逻辑运算。下面详细介绍每个位运算符。1.1 .与运算符与运算符用符号“&”表示,其使用规律如下:只有对应的两个二进制位均为1时,结果才为1。例如,9&...原创 2019-08-07 11:00:18 · 210 阅读 · 0 评论 -
【老九学堂】【Java】运算符优先级
我们先后学习了不同的运算符,通过运算符我们的能进行各种不同的操作实现自己的想要的效果,但是此时还存在一个问题,当在一个表达式中,有可能包含多个有不同运算符连接起来的、具有不同数据类型的数据对象.由于表达式有多种运算,不同的运算顺序可能得出不同结果甚至出现错误运算,这是因为,在当表达式含有多种运算符的时候,必须要按照一定的顺序进行结合才能保证运算的正确,也就是说,各运算符之间有一定的优先级,你只要...原创 2019-08-07 11:04:28 · 386 阅读 · 0 评论 -
【老九学堂】【Java】小议转义字符
今天我们给小伙伴们简单的补充下转义字符相关的知识,在Java中的字母前面加上反斜线""来表示常见的那些不能显示的ASCII字符,我们称之为转义字符。如\0,\t,\n等,就称为转义字符。那么我们来看看下面这个例子:假如你想在输出时显示如下带引号的信息,你能编写如下所示的这条语句吗?System.out.println("老九君说:“小伙伴你好!” ");答案是肯定的:不能!因为这条语句有语法...原创 2019-08-07 11:06:17 · 196 阅读 · 0 评论 -
【老九学堂】【Java】小议计算机内存&字节
内存计算机内存是由一个有序的字节序列组成,用于存储程序及程序需要的数据。你可以将内存想象成计算机执行程序的工作区域。一个程序和它的数据在被CPU执行前必须移到计算机的内存中。每个字节都有一个唯一的地址,如图1所示:使用这个地址确定字节的位置,以便于存储和获取数据。因为可以按任意顺序存取字节,所以内存也被称为随机访问存储器(Random-Access Memory,RAM)。现在的个人计算...原创 2019-08-07 11:07:58 · 248 阅读 · 0 评论 -
【老九学堂】【Java】再议printf函数
System.out.printf() 是在JDK1.5版开始引入的方法,即在JDK1.5以后的版本才可以使用此函数,printf 方法有 printf(String format, Object … args) 和 printf(Locale l, String format, Object … args) 两种重载方式。其实学过C语言的小伙伴应该会觉得很亲切,就是控制输出的格式。目前prin...原创 2019-08-07 11:11:30 · 210 阅读 · 0 评论 -
【老九学堂】【Java】详解常见的53个关键字
1.在Java中目前一共有53个关键字:其中由51+2个保留字=53个关键字【友情提示 : Java的关键字都是小写哟】2.Java的保留字有多少个?分别是什么?答:Java的保留字有2个,Java语言的的保留字是指预留的关键字。分别为:1).const —— 常量,常数用于修改字段或局部变量的声明。它指定字段或局部变量的值是常数,不能被修改。2).goto —— 转到指定跳转...原创 2019-08-07 11:17:34 · 325 阅读 · 0 评论 -
【老九学堂】【Java】char类型详解
char的初始化char是Java中的保留字,与别的语言不同的是,char在Java中是16位的,因为Java用的是Unicode。不过8位的ASCII码包含在Unicode中,是从0~127的。但是English,Spanish,German, French根本不需要这么表示,所以它们其实采用ASCII码会更高效。这中间就存在一个权衡问题。因为char是16位的,采取的Unicode的编码...原创 2019-08-07 11:22:20 · 508 阅读 · 0 评论 -
【老九学堂】【Java】小议BigDecimal数据类型
引言我们知道在Java中有float和double类型,它们的主要设计目标是为了科学计算和工程计算。然而,它们没有提供完全精确的结果【因为其有限的有效位数】,所以不应该被用于要求精确结果的场合。但是,商业计算往往要求更加精确的结果,这时候BigDecimal的重要性就不言而喻了!BigDecimal简介BigDecimal 由任意精度的整数非标度值和32位的整数组成。BigDecimal所创...原创 2019-08-07 11:25:20 · 185 阅读 · 0 评论 -
【老九学堂】【Java】常用dos命令
dos常用基本命令1.dir (directory)查看某个盘或文件下的目录(所以文件及文件夹);**格式:**dir [盘符:][目录路径] [/p] [/s] [/w] [/o];解释:([/p]- 分页显示目录内容,按任意键查看下一屏;[/s]- 显示所有目录及其子目录下所有文件;[/w]- 宽屏显示;[/o]- 分类顺序显示) ;2.cd (change directory) 进...原创 2019-08-07 11:34:58 · 298 阅读 · 0 评论 -
【老九学堂】【Java】Java环境之JDK配置
【特别说明】:本笔记均以Win10环境为主,Win10与Win7差别不大,个别地方有Win7的单独截图和说明,小伙伴们有疑问的地方都可以在我们的QQ群中提出来,我们也会通过大家的反馈不断的完善我们的笔记和文档,如果还没加群的小伙伴快快申请入群哟!老九Java交流群QQ:643926488.配置JDK为Java编译环境,当然,大师兄早已经为大家准备好了集成JDK版的Eclipse,大家可以直接在群...原创 2019-08-07 12:15:03 · 374 阅读 · 0 评论 -
【老九学堂】【Java】初级编码规范
良好的编码规范和习惯会让你的代码锦上添花,同时也会大大的增加团队协作开发的效率,避免很多细节的问题,从而大大的提高你的代码的可阅读性,同时也是一个优秀开发者的必备技能之一,所以接下来,我们就一起来了解并掌握一些常见的编码规范吧。一、命名规范:类名的首字母必须大写。所有成员变量、方法命名时,必须遵守骆驼命名法。【PS:骆驼式命名法就是当变量名或函式名是由一个或多个单词连结在一起,而构成的唯一...原创 2019-08-07 12:20:54 · 285 阅读 · 0 评论 -
【老九学堂】【Java】变量命名规范
Java是一种区分字母的大小写的语言,所以我们在定义变量名的时候应该注意区分大小写的使用和一些规范,接下来我们简单的来讲讲Java语言中包、类、变量等的命名规范。(一)Package(包)的命名Package的名字应该都是由一个小写单词组成,例如com、xuetang9、company等。(二)Class(类)的命名Class的名字首字母大写,通常由多个单词合成一个类名,要求每个单词的首字...原创 2019-08-07 12:22:37 · 240 阅读 · 0 评论 -
【老九学堂】【Java】集合框架
今天我们来简单的了解下Java中的集合框架,其实集合就是将若干用途相同、近似的“数据”结合成一个整体。集合从体系上分为三种:(1) 列表(List):List集合区分元素的顺序,允许包含相同的元素。(2) 集(Set):Set集合不区分元素的顺序,不允许包含相同的元素。(3) 映射(Map):Map集合保存的”键”-“值”对,“键”不能重复,而且一个“键”只能对应一个“值”,所有的内容是以...原创 2019-08-07 08:45:08 · 212 阅读 · 0 评论 -
【老九学堂】【Java】读取Properties文件的几种方法
1.使用java.util.Properties类的load()方法示例: InputStream in = lnew BufferedInputStream(new FileInputStream(name));Properties p = new Properties();p.load(in);2.使用java.util.ResourceBundle类的getBundle()方法示例...原创 2019-08-07 08:39:45 · 139 阅读 · 0 评论 -
【扩展】Java调用native本地方法实例:控制台下的中英文字符对齐问题(强迫症患者专属)
一、背景大家在初学Java的时候一般都是采用Eclipse或其他IDE环境,中英文混合时的对齐问题想必都或多或少地困扰过大家,比如下面的代码和在Eclipse中的显示效果:Java字符串格式构建代码:public String toString() { String str = String.format("%-8s%-4d\t%-8s\t%.2f", name, level...原创 2019-08-05 17:28:28 · 451 阅读 · 0 评论 -
【工具】Astah Professional 8安装教程
1、下载软件压缩包文件,首先点击“astah-professional-8_0_0-d641d4-jre-64bit-setup.exe”安装原版程序32位:https://pan.baidu.com/s/19NBG2KQ-UubaOwuVtql_FA 分享码:scd764位:https://pan.baidu.com/s/1cSIoJOUwGPrhFODRNWPfeA 分享码:fqbx2...原创 2019-08-05 17:42:21 · 10348 阅读 · 6 评论 -
【扩展】JDK源码中HashMap中hash方法的原理
HashMap中hash方法的源码如下://jdk1.7版本static int hash(int h) { h ^= (h >>> 20) ^ (h >>> 12); return h ^ (h >>> 7) ^ (h >>> 4);}//Java 8中的散列值优化方法static final i...原创 2019-08-05 17:48:59 · 304 阅读 · 0 评论 -
java.util.Scanner类的基本使用
java.util.Scanner 是 Java5 的新特征,我们可以通过 Scanner 类来获取用户的输入。下面是创建 Scanner 对象的基本语法:Scanner scanner = new Scanner(System.in);接下来我们演示一个最简单的字符串输入,并通过 Scanner 类的 next() 与 nextLine() 方法获取输入的字符串://创建Scanner...原创 2019-08-05 17:52:10 · 330 阅读 · 0 评论 -
Unicode 和 UTF-8、UTF-16、UTF-32之间的关系
看到大家对Unicode编码非常感兴趣,特别整理这篇补充内容给大家。1、首先区别编码字符集(一个字符集)和字符集编码(表示一种编码规则):Unicode是编码字符集,而UTF-8, UTF-16, UTF-32是字符集编码。因为计算机智能处理二进制数字,如果要处理文本、图像、声音等就必须先转换为二进制才能处理,这个过程就是编码过程。早期的计算机在设计时采用8个比特(bit,位)作为一个字节...原创 2019-08-05 17:58:12 · 556 阅读 · 0 评论 -
在Eclipse中配置中文JavaDoc
第一步:准备配置所需的资源JDK1.8 API 中文 谷歌翻译版:点击下载CHM反编译工具 1.0:点击下载package-list:点击下载(需要解压缩)第二步:解压chm文件以及CHM反编译工具并打开CHMFBY.exe:选择好CHM文件后点击“解包”,注意存放路径的设置解包时会短暂无响应,完毕后D:\JavaDoc1.8\(默认D:\CHM\)会有如下的文件:第三步:将解包...原创 2019-08-05 18:02:23 · 726 阅读 · 1 评论 -
Java各版本特性一览-从Java1.0到Java12
JDK Version 1.01996-01-23 Oak(橡树)初代版本,伟大的一个里程碑,但是是纯解释运行,使用外挂JIT,性能比较差,运行速度慢。JDK Version 1.11997-02-19– JDBC(Java DataBase Connectivity);– 支持内部类;– RMI(Remote Method Invocation) ;– 反射;– Java Be...转载 2019-08-05 18:04:53 · 436 阅读 · 0 评论 -
面试题知识点系列之详解Javac命令
javac命令使用方法javac [ options ] [ sourcefiles ] [ @files ] (參数可按随意次序排列) options:命令行选项 sourcefiles:一个或多个要编译的源文件(比如 MyClass.java) @files:一个或多个对源文件进行列表的文件javac命令说明:有两种方法可将源码文件名称传递给 javac:第...原创 2019-08-05 18:53:24 · 236 阅读 · 0 评论 -
面试题知识点系列之Java语言特性
特性综述:Java 语言的风格很像 C 语言和 C++ 语言,是一种纯粹的面向对象语言,它继承了 C++ 语言面向对象的技术核心,但是拋弃了 C++的一些缺点,比如说容易引起错误的指针以及多继承等,同时也增加了垃圾回收机制,释放掉不被使用的内存空间,解决了管理内存空间的烦恼。Java语言是一种分布式的面向对象语言,具有面向对象、平台无关性、简单性、解释执行、多线程、安全性等很多特点,下面...原创 2019-08-05 18:56:47 · 480 阅读 · 0 评论 -
CentOS中安装配置Java开发环境(非OpenJDK)
本文通过在Oracle官网的JDK1.8安装及配置Java开发环境,不使用OpenJDK1、卸载系统自带的OpenJDK及相关的Java文件1-1:使用管理员登录服务器,键入命令:java -version可以看到系统自带的OpenJDK信息1-2:键入命令:rpm -qa | grep javarpm是管理套件命令,-qa表示使用询问模式查询所有套件;grep表示查询文件里符合...原创 2019-08-05 19:02:37 · 982 阅读 · 0 评论 -
Java中的深复制和浅复制
深复制和浅复制也称为深拷贝和浅拷贝。简单的说就是创建一个和当前对象一模一样的对象。在日常编码的过程中使用的几率并不多,但在面试中却会被经常问到。了解深复制和浅复制的原理后,可以帮助我们对Java中的值传递和引用传递有更深刻的理解。浅复制下面的实例中,我们创建一个原始类Monster,调用对象的clone方法复制一个新的对象。注意:要调用对象的clone方法,需要让类实现Cloneable接...原创 2019-08-05 19:22:52 · 199 阅读 · 0 评论 -
[转]使用JavaFX构建部署Android应用
Java平台最初的目标是为嵌入式设备提供一个软件环境。然而,历史的怪圈却让Java成为了企业软件开发的首选语言。过去,Java的客户端应用所受到的关注比利润丰厚的服务器端市场要少得多。不过,现在Java平台已经拥有了强大的客户端组件——JavaFX,可用于开发桌面、平板电脑、移动和嵌入式系统上的应用程序。本文将为读者展示如何在Android设备上部署JavaFX应用程序。任何致力于客户端开发的软...转载 2019-08-05 19:26:16 · 654 阅读 · 0 评论 -
Apache开源日志框架Log4j配置指南(1.x)
Log4j是Apache的一个开源项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台、文件、GUI组件,甚至是套接口服务器、NT的事件记录器、UNIX Syslog守护进程等;我们也可以控制每一条日志的输出格式;通过定义每一条日志信息的级别,我们能够更加细致地控制日志的生成过程。最方便的就是,这些可以通过一个配置文件来灵活地进行配置,而不需要修改应用的代码。本篇指南主要介绍Log...原创 2019-08-05 19:33:14 · 509 阅读 · 0 评论 -
使用Java Swing实现QQ管家界面
学会JavaSwing构建程序界面后,小伙伴们最大的困惑可能是“为什么我们做出来的界面那么丑、不跟市面流行的程序界面一样呢?”像这个界面,我们发现标题栏跟默认状态不一样,关闭按钮的样式也变了。实现的方法其实很简单,使用setUndecorated(true);取消窗体装饰,其他效果通过图片完成即可。下面的代码实现了无标题栏窗体,使用背景拉伸的技术为处于上部分的面板设置了背景图片;实现了关闭...原创 2019-08-05 19:35:50 · 493 阅读 · 0 评论 -
在Java中调用C/C++代码实现
在Java中利用native关键字调用C/C++实现过程整理如下:书写Java代码使用javah命令编译成头文件在codeblocks中创建SharedLibrary工程复制头文件内容并书写实现代码配置C工程编译环境并编译成dll文件复制dll到Java工程目录下执行Java程序第一步:书写Java代码在Eclipse中创建Java工程:JavaNativeDemo,创建包:co...原创 2019-08-05 19:43:36 · 591 阅读 · 0 评论 -
关于进制和进制转换的那些事
要理解进制和进制转换,首先需要理解数制系统。数制系统包括:(计算机中常用的数制系统)– 十进制数制系统(逢十进一)– 二进制数制系统(逢二进一)– 八进制数制系统(逢八进一)– 十六进制数制系统(逢十六进一)日常生活中,我们还会经常碰到其他的数制系统,如60秒为1分钟(60进制)、12个月为1年(12进制)、4季为1年(4进制)。我们整理一下数制系统的特点,相关的基本概念整理如下:...原创 2019-08-05 19:47:35 · 551 阅读 · 0 评论 -
【老九学堂】【Java】Eclipse中常用操作快捷键
Eclipse快捷键大全Ctrl + 1 快速修复Ctrl + D 删除当前行Ctrl + Alt + ↓ 复制当前行到下一行(复制增加)Ctrl + Alt + ↑ 复制当前行到上一行(复制增加)Alt + ↓ 当前行和下面一行交互位置Alt + ↑ 当前行和上面一行交互位置(同上)Alt + ← 前一个编辑的页面Alt + → 下一个编辑的页面(当然是针对上面那条来说了)A...原创 2019-08-07 12:26:47 · 184 阅读 · 0 评论