
Java
文章平均质量分 73
二木成林
这个作者很懒,什么都没留下…
展开
-
java获取当前类的类名和方法名
获取当前类的类名原创 2022-02-21 22:07:30 · 17126 阅读 · 2 评论 -
浮点型数据的使用
/* * 浮点型数据 */public class one1{ public static void main(String[] args){ float x=33.3f; float y=1.234567F; double z=35.34d; double m=56; System.out.println(x+"\n"+y+"\n"+z+"\n"+m); }}/...原创 2018-04-30 09:05:49 · 1639 阅读 · 0 评论 -
ASCII、Unicode和UTF-8、UTF-16、UTF-32的关系
ASCII码ASCII码表计算机中任何信息都是用0和1来表示的。但是现实世界各种信息如图像、视频、音频、语言文字却不是用0和1表示的。为了计算机能够更加智能,我们需要让计算机能够识别人类世界的信息,所以我们需要将图像、视频、音频、语言文字等信息转换成二进制(0和1)存储到计算机中,这一过程也称之为编码。编码是信息从一种形式或格式转换为另一种形式的过程。如果只有一位二进制,那么可以代表两种情况,即2^1=2,可能是0或1。 如果有两位二进制,那么就可以代表四种情况,即2^2=4,可能是00、原创 2021-08-15 22:48:10 · 1513 阅读 · 0 评论 -
关于PO、BO、VO、DTO、DAO、POJO等概念的理解
PO(Persistant Object)持久对象PO是持久化对象,用于表示数据库中的一条记录映射成的Java对象,类中应该都是基本数据类型和String,而不是更复杂的类型,因为要和数据库表字段对应。PO仅仅用于表示数据,不对数据进行操作,拥有get和set方法。对象类中的属性对应数据库表中的字段,有多少个字段就有多少个属性,完全匹配。遵循JavaBean规范,拥有get和set方法。如下图所示:DO(Data Object)数据对象数据对象,与数据库表结构一一对应,通过dao层向上传输数原创 2021-07-25 17:12:20 · 21836 阅读 · 7 评论 -
Java高级之LinkedList的ListIterator迭代器
先来看下面的示例:public class Demo { public static void main(String[] args) throws IOException { List<String> list = new LinkedList<>(); list.add("唐僧"); list.add("孙悟空"); list.add("猪八戒"); list.add("沙僧");原创 2021-02-26 12:49:17 · 2229 阅读 · 0 评论 -
Java高级之HashMap中的哈希表
哈希表中的“表”当我们需要存储一种映射数据时,就需要用到哈希表,也称为散列表(Hash Table)。该数据结构中存储的是键(key)和值(value),它们是对应关系。只需要给出一个指定的key,那么就能高效查找到它所匹配的值,效率非常高,时间复杂度接近于O(1)。这就是哈希表中的“表”,表中维护了key与value的映射关系。哈希表中的“哈希”思考下,那么该如何存储键值对(key—value)呢?如果使用链式存储结构:肯定是不行的,因为如果要查找到指定key对应的原创 2021-02-23 16:20:00 · 1175 阅读 · 2 评论 -
Java高级之HashMap中的put()方法和putIfAbsent()方法
概述put()方法和putIfAbsent()方法:共同点 都是添加键值对到HashMap中。 如果以前没有添加过相同的键,则put()和putIfAbsent()方法都返回的是null,get()方法返回的都是该键对应的键值。 不同点 如果以前有添加过相同的键,则put()方法会用新值替换旧值,返回的是旧值;而putIfAbsent()方法不会用新值替换旧值,因此该键值对不变,返回旧值。 示例代码public class Demo { public static v原创 2021-02-12 10:13:52 · 11828 阅读 · 0 评论 -
Java高级之HashMap中的entrySet()方法
基本使用entrySet()方法得到HashMap中各个键值对映射关系的集合。然后Map.Entry中包含了getKey()和getValue()方法获取键和值。示例:public class Demo { public static void main(String[] args) { Map<String, String> map = new HashMap<>(); map.put("abc", "123");原创 2021-02-11 23:21:38 · 8476 阅读 · 3 评论 -
Java高级之HashMap中的values()方法
values()方法的作用是得到HashMap中的value的集合。values()方法的源码: /** * 获取HashMap中value的集合 * * @return 返回value集合 */ public Collection<V> values() { /* 1.与keySet()方法一样,最重要的还是new Values(),实例化Values对象 */原创 2021-02-11 22:40:24 · 23633 阅读 · 4 评论 -
Java高级之HashMap中的keySet()方法
keySet()方法的源码为: public Set<K> keySet() { Set<K> ks = keySet; if (ks == null) { ks = new KeySet(); keySet = ks; } return ks; }注释为: /** * 获取HashMap的键的集合,以Set<K>保原创 2021-02-11 21:58:41 · 11558 阅读 · 4 评论 -
Java高级之Float类和Double类的isNaN()方法
遇到这个问题,最开始是在HashMap的源码中,在构造方法中调用了该方法而isNaN()是Float类和Double类都有的一个静态方法,意思是判断输入的参数是否是一个NaN值。方法体就只有一条语句,即v!=v。其实NaN严格来说不算是一个值,NaN全称是NotaNumber,意思是“不是一个数字”,代表一种不合法,即float值和double值不合法。而NaN在Float类和Double类中有定义。我们知道除法的分母是不能为0的,这就是一种不合法。Mat..原创 2021-02-10 23:16:49 · 1384 阅读 · 0 评论 -
Java高级之1.8版本JDK中的HashMap的put()方法和putVal()方法
put()方法的源码如下: public V put(K key, V value) { return putVal(hash(key), key, value, false, true); }最核心的就是调用了putVal()方法,用来将元素添加到HashMap集合中,但传递的一个参数中调用了一个hash(key)方法,在JDK1.7中的HashMap源码中也有一个hash(key)方法,下面先来看看两个的代码:1.7版本的hash(key)方法:1.8原创 2021-02-08 22:02:46 · 805 阅读 · 0 评论 -
Java高级之1.7版本JDK中的HashMap的hash(key)方法
在说hash(key)方法之前,下面来简单模拟下HashMap中的put()方法,来查看哈希冲突:最简单的情况,在下面代码中,用一个Object[]数组充当链表数组,判断str实例对象的hashCode值并得到在数组中存放的下标,然后放入数组。/* 说明: 1.有一些对象需要放入到一个数组中(为什么要把它们放入数组,可以探究为什么会产生哈希算法?) 2.问题来了,怎么确定该对象应该放到数组中哪个位置,不可能每个程序员都制定一套规则,让这个对象放到某个位置,没原创 2021-02-07 22:13:31 · 1741 阅读 · 0 评论 -
Java高级之1.7版本JDK中的HashMap的indexFor()方法
注意:在1.8之前(本例是1.7版本)中才有indexFor()方法,而1.7及以后该方法没有了,该方法所产生的作用不再是单独作为一个方法出现。该方法的源码: static int indexFor(int h, int length) { return h & (length-1); }知道这个方法肯定明白indexFor()方法将hash生成的整型转换成链表数组的下标。而h&(length-1)的意思就是取模,即h%length,有下面的等原创 2021-02-07 16:32:03 · 1070 阅读 · 3 评论 -
Java高级之Arrays类的copyOf()和copyOfRange()方法以及System.arraycopy()方法介绍
概述copyOf()和copyOfRange()方法都是Arrays类的静态方法,都是用来复制数组的。copyOf()copyOf()方法的说明:/* public static <T> T[] copyOf(T[] original, int newLength) 方法说明: 属于Arrays类的静态方法,可以通过类名直接调用,作用是复制指定长度的数组 参数说明: T[] original原创 2021-02-07 13:20:29 · 6214 阅读 · 3 评论 -
Java高级之ArrayList中的trimToSize()方法
trimToSize()方法的源码如下: public void trimToSize() { modCount++; if (size < elementData.length) { elementData = (size == 0) ? EMPTY_ELEMENTDATA : Arrays.copyOf(elementData, size); } }原创 2021-02-07 09:38:07 · 1998 阅读 · 0 评论 -
Java高级之类.class和类实例.getClass()
在ArrayList的源码中看到这样的情形:红框中的代码的作用就是判断实例类是否是某个指定类型。elementData是Object[]的实例对象,而Object[]是系统定义的类。看下面的代码:public class Demo { public static void main(String[] args) { String str = new String("str"); System.out.println(str.getClass())原创 2021-02-06 21:52:57 · 753 阅读 · 1 评论 -
使用Java读取properties配置文件内容
properties配置文件内容如下:driverName=com.mysql.jdbc.Driverurl=jdbc:mysql://localhost:3306/db_accountSystemuser=rootpassword=adminJava代码如下:import java.io.File;import java.io.FileInputStream;impor...原创 2020-02-02 19:27:15 · 524 阅读 · 0 评论 -
Java中文编码问题
这篇文章写得很好:https://www.ibm.com/developerworks/cn/java/j-lo-chinesecoding/原创 2020-01-17 14:19:49 · 266 阅读 · 0 评论 -
Java Swing登录面板(有三次登录机会)
源代码:package 幸运抽奖;import java.awt.BorderLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.JButton;import javax.swing.JDialog;import javax.swing...原创 2019-10-01 16:26:33 · 476 阅读 · 0 评论 -
使用Swing组件3——使用文本组件
使用文本组件官方API:https://docs.oracle.com/javase/tutorial/uiswing/components/textapi.html本节提供使用Swing文本组件时可能需要的背景信息。如果您打算使用无样式的文本组件 - 文本字段,密码字段,格式化文本字段或文本区域 - 请转到其操作方法页面,并仅在必要时返回此处。Swing文本组件显示文本,并可选择允许...原创 2019-07-01 19:52:01 · 1572 阅读 · 0 评论 -
使用Swing组件2-JComponent
JComponent类官方API:https://docs.oracle.com/javase/tutorial/uiswing/components/jcomponent.html#complookapi除顶级容器外,名称以“J”开头的所有Swing组件都从 JComponent该类开始。例如JPanel,JScrollPane,JButton,和JTable所有的继承JComponen...原创 2019-03-04 18:04:41 · 2397 阅读 · 0 评论 -
使用Swing组件1——使用顶级容器
使用顶级容器正如我们前面提到的,Swing提供了三个大致有用的顶层容器类:JFrame,JDialog,和JApplet。使用这些类时,您应该牢记以下事实: 要在屏幕上显示,每个GUI组件都必须是包含层次结构的一部分。包含层次结构是一个组件树,其顶层容器作为其根。我们会向您展示一个。 每个GUI组件只能包含一次。如果组件已经在容器中并且您尝试将其添加到另一个容器,则该组件将从第...原创 2019-03-04 13:54:17 · 2739 阅读 · 0 评论 -
FileView
源代码:package 文件选择器;import java.awt.Image;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.io.File;import javax.swing.Icon;import javax.swing.ImageIcon;impo...原创 2019-02-23 13:52:53 · 1943 阅读 · 0 评论