
java基础
小树ぅ
放弃不难 但坚持一定很酷!
展开
-
【Java基础】Java中如何实现“时间转换“以及“时间加减“ + sql中如何实现“时间转换“以及“时间加减“(postgresql)
java实现时间转换和时间加减postgresql实现时间转换和时间加减原创 2022-09-26 17:14:46 · 2388 阅读 · 1 评论 -
【数据结构与算法】Java“位运算“知识点
1.java整数类型总结数据类型 范围(^ 代表次方) 字节数 byte 类型 -128(-2 ^ 7) ~ 127(2 ^ 7 - 1) 1字节,8位 short 类型 -32768(-2 ^ 15)~ 32767(2 ^ 15 - 1) 2字节,16位 int 类型 -2,147,483,648(-2 ^ 31)~ 2,147,483,647(2 ^ 31 - 1) 4字节,32位 long 类型 -2 ^ 63 ~...原创 2022-01-16 23:15:05 · 421 阅读 · 0 评论 -
【Java基础】Arrays.sort()的三种用法
1、Arrays.sort(int[] a)这种形式是对一个数组的所有元素进行排序,并且是按从小到大的顺序。举例如下(点“+”可查看代码): 1 import java.util.Arrays; 2 3 public class Main { 4 public static void main(String[] args) { 5 6 int[] a = {9, 8, 7, 2, 3, 4, 1, 0, 6, 5}; 7转载 2021-09-13 20:21:25 · 6142 阅读 · 0 评论 -
【Java基础】String、StringBuffer的常用方法
一、String类的常用方法1.获取: 1)获取字符串str长度 int i = str.length(); 2)根据位置(index)获取字符 char c = str.charAt(index); 3)获取字符在字符串中的位置 int i =str.indexOf(char ch); //获取的是第一次出现的位置 int...转载 2021-07-27 17:51:58 · 1625 阅读 · 0 评论 -
Queue的常用方法
1.获取并移除poll() //获取并移除此队列的头,如果此队列为空,则返回 nullremove() //获取并移除此队列的头,如果此队列为空,则抛出NoSuchElementException异常2.获取但不移除peek() //获取队列的头但不移除此队列的头。如果此队列为空,则返回 null3.添加元素的方法offer() //将指定的元素插入此队列(如果立即可行且不会违反容量限制),插入成功返回 true;否则返回 false。当使用有容量限制的队列时,offe原创 2021-07-09 01:36:47 · 3433 阅读 · 0 评论 -
【Java基础】GridLayout实现计算器界面
import java.awt.GridLayout; import javax.swing.JButton;import javax.swing.JFrame; public class TestGUI { public static void main(String[] args) { JFrame f = new JFrame("计算器"); f.setSize(600,500); f.setLocation(200, 200);.原创 2021-03-01 20:55:35 · 1269 阅读 · 0 评论 -
【Java基础】JFrame、模态JDialog、ActionListener、setResizable()综合练习 (详细解析)
问题:设计一个JFrame,上面有一个按钮,文字是 "打开一个模态窗口"。点击该按钮后,随即打开一个模态窗口。在这个模态窗口中有一个按钮,文本是 "锁定大小", 点击后,这个模态窗口的大小就被锁定住,不能改变。 再次点击,就回复能够改变大小。解决:package 容器和布局器;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.JButton;impo原创 2021-03-01 20:18:26 · 438 阅读 · 0 评论 -
【Java基础】 Scanner ‘next()方法和nextLine()方法的区别‘
next()和nextLine()的区别详解next()方法:在读取内容时,会过滤掉有效字符前面的无效字符,对输入有效字符之前遇到的空格键、Tab键或Enter键等结束符,next()方法会自动将其过滤掉;只有在读取到有效字符之后,next()方法才将其后的空格键、Tab键或Enter键等视为结束符;所以next()方法不能得到带空格的字符串。nextLine()方法:该方法字面上有扫描一整行的意思,它的结束符只能是Enter键,即nextLine()方法返回的是Enter键之前没有被读原创 2021-02-28 23:44:26 · 215 阅读 · 0 评论 -
【Java基础】使用HashMap和For循环查找数据并且统计耗费时长
准备一个ArrayList其中存放3000000(三百万个)Hero对象,其名称是随机的,格式是hero-[4位随机数]hero-3229hero-6232hero-9365...因为总数很大,所以几乎每种都有重复,把名字叫做 hero-5555的所有对象找出来要求使用两种办法来寻找1. 不使用HashMap,直接使用for循环找出来,并统计花费的时间2. 借助HashMap,找出结果,并统计花费的时间package ArrayList;public class Hero {原创 2021-02-15 20:19:26 · 1413 阅读 · 2 评论 -
Map.getOrDefault方法
先看源码:default V getOrDefault(Object key, V defaultValue) { V v; return (((v = get(key)) != null) || containsKey(key)) ? v : defaultValue; }意思就是当Map集合中有这个key时,就使用这个key对应的value值,如果没有这个key就使用默认值defaultValue。接着看例子:public stati原创 2021-03-24 23:49:52 · 597 阅读 · 0 评论 -
多线程的3个特性
1.原子性 JAVA的原子性就和数据库事务的原子性差不多,即一个操作或者多个操作,要么全部执行并且执行的过程不会被任何因素打断,要么就都不执行。在JAVA中,对基本数据类型的变量的读取和赋值操作是原子性操作,即这些操作是不可被中断的,要么执行,要么不执行。JAVA内存模型(JMM)只是保证了基本的原子性,有些操作看似是原子操作,其实不然,举个栗子:x = 10; //语句1y = x; //语句2x++; //语句3x = x + 1; //语句4以上4个语句哪个是原子性操作呢?..原创 2021-03-13 16:58:39 · 187 阅读 · 0 评论 -
【Java集合】 HashSet,LinkedHashSet和 TreeSet
HashSet: 无序LinkedHashSet: 按照插入顺序TreeSet: 从小到大排序import java.util.HashSet;import java.util.LinkedHashSet;import java.util.TreeSet; public class TestCollection { public static void main(String[] args) { HashSet<Integer> numberSet1转载 2021-02-16 02:02:13 · 255 阅读 · 1 评论 -
二维数组的行列长度
1.定义二维数组:int[][] Arrays=new int[9][9];//定义一个9行9列的二维数组2.二维数组的行长度int rowLength=Arrays.length;3.二维数组的列长度int colLength=Arrays[0].length;原创 2021-05-21 09:35:56 · 2077 阅读 · 0 评论 -
String和StringBuffer的转换
前言:String和StringBuffer是属于不同类型的,所以不能直接进行强制类型转换。错误代码示范:StringBuffer s1="xiaoshu";StringBuffer s2=(StringBuffer)"xiaoshu";String转换StringBuffer:Strings1="xiaoshu";StringBuffers2=newStringBuffer(s1);StringBuffer转换String:Strin...原创 2021-05-11 10:31:48 · 637 阅读 · 0 评论 -
java数字转字符串的三种方式
方式一:强制转换int i=2018;String s1=(String)i;方式二:通过包装类进行转换int i=2018;String s1=String.valueOf(i);方式三:通过数字加空字符串转换int i=2018;String s1=i+"";原创 2021-05-11 01:21:15 · 8709 阅读 · 0 评论 -
for循环的大括号问题
for循环语句如果循环体内只有一条执行语句则不用加大括号,如果执行语句为多条语句则必须用大括号括起来,以表示这一部分的执行语句都在循环体内,循环条件满足时要被执行的语句;如:(1)for(i=0;i<5;i++)s+=m[i];这个循环体内就一条执行语句s+=m[i];故不用大括号;(2)for(i=0;i<5;i++)for(j=0;j<5;j++){a[i][j]=m;m++;if(j<=i)printf("%3d",a[i][j]);}该例题双原创 2021-05-07 21:47:58 · 5448 阅读 · 0 评论 -
LinkedList的常用方法
常用方法:方法名 说明 返回值类型 add() 在集合的末尾添加元素 boolean(添加成功,返回1;添加失败,返回0) add(int index, E e) 在集合的指定索引处添加元素,索引处后面的元素会下移 void size() 获取元素的个数(集合的长度) int get(int index) 获取指定索引处的元素 E contains(E e) 判断集合里是否存在指定元素 boolean(有,...原创 2021-04-17 15:22:51 · 392 阅读 · 0 评论 -
ArrayList的常用方法
方法名 说明 返回值类型 add() 在集合的末尾添加元素 boolean(添加成功,返回1;添加失败,返回0) add(int index, E e) 在集合的指定索引处添加元素,索引处后面的元素会下移 void size() 获取元素的个数(集合的长度) int get(int index) 获取指定索引处的元素 E contains(E e) 判断集合里是否存在指定元素 boolean(有,返回1;没有.原创 2021-04-17 15:20:11 · 127 阅读 · 0 评论 -
happends-before原则
程序次序规则:一个线程内,按照代码顺序,书写在前面的操作先行发生于书写在后面的操作;锁定规则:一个unLock操作先行发生于后面对同一个锁额lock操作;volatile变量规则:对一个变量的写操作先行发生于后面对这个变量的读操作;传递规则:如果操作A先行发生于操作B,而操作B又先行发生于操作C,则可以得出操作A先行发生于操作C;线程启动规则:Thread对象的start()方法先行发生于此线程的每个一个动作;线程中断规则:对线程interrupt()方法的调用先行发生于被中断线程的代码检测到中.原创 2021-04-16 21:01:07 · 419 阅读 · 1 评论 -
红黑树
红黑树基础红黑树是一种近似平衡的二叉查找树,他并非绝对平衡,但是可以保证任何一个节点的左右子树的高度差不会超过二者中较低的那个的一倍。红黑树有这样的特点:每个节点要么是红色,要么是黑色。 根节点必须是黑色。叶子节点必须是黑色NULL节点。 红色节点不能连续。 对于每个节点,从该点至叶子节点的任何路径,都含有相同个数的黑色节点。 能够以O(log2(N))的时间复杂度进行搜索、插入、删除操作。此外,任何不平衡都会在3次旋转之内解决。 ...原创 2021-04-11 20:32:43 · 77 阅读 · 0 评论 -
ArrayList的自动扩容机制
ArrayList的继承体系ArrayList 是 java 集合框架中比较常用的数据结构。继承自 AbstractList,实现了 List 接口。基于数组实现容量大小动态变化。同时还实现了 RandomAccess、Cloneable、Serializable 接口,所以ArrayList 是支持快速访问、复制、序列化的。public class ArrayList<E> extends AbstractList<E> implements List原创 2021-04-11 17:10:21 · 1132 阅读 · 2 评论 -
HasMap的常用方法
1、添加 put(K key,V value) putAll(Map<? extends K,? extends V> m) 2、删除 clear() remove(Object key) 3、判断 containsValue(Object value) containsKey(Object key) isEmpty() 4、获取 ...原创 2021-03-24 23:42:24 · 590 阅读 · 0 评论 -
Java基础 详解“时间原点,日期,日期格式化,翻日历“+代码示例
日期想要学习日期的相关知识,首先要知道Date类,使用Date类必须import,即:import java.util.Date;时间原点所有的数据类型,无论是整数,布尔,浮点数还是字符串,最后都需要以数字的形式表现出来。日期类型也不例外,换句话说,一个日期,比如2020年10月1日,在计算机里,会用一个数字来代替。那么最特殊的一个数字,就是零. 零这个数字,就代表Java中的时间原点,其对应的日期是1970年1月1日 8点0分0秒 。 (为什么是8点,因为中国的太平洋时区是UTC-8,刚好原创 2021-03-13 20:54:11 · 740 阅读 · 0 评论 -
【Java基础】 String类的常用方法(操纵字符串)
前言:String类中有一些已经被定义的方法被提供给我们使用,掌握这些方法后在字符串的操作过程中将会十分的方便。获取指定位置的字符:charAt(int index)public class TestString { public static void main(String[] args) { String sentence = "盖伦,在进行了连续8次击杀后,获得了 超神 的称号"; char c = sent原创 2021-02-16 21:26:10 · 745 阅读 · 1 评论 -
【Java基础】 四舍五入, 随机数,开方,次方,π,自然常数
public static void main(String[] args) { float f1 = 5.4f; float f2 = 5.5f; //5.4四舍五入即5 System.out.println(Math.round(f1)); //5.5四舍五入即6 System.out.println(Math.round(f2)); //得到一个0-1之间的随机浮点数(.原创 2021-02-07 13:19:56 · 504 阅读 · 0 评论 -
【Java基础】 \n, \t, \r 的区别
\n:在Windows中表示换行,换到下一行的行首位置。 在Linux,unix中表示左右位置不发生改变,换到下一行,及换行前后的纵坐标相同。\t:在Window中表示缩进,相当于按一下Tab键,也就是从当前位置开始空4个字符。\r:在Window中表示回车,即移动到本行的最开始位置。 想必也有不少编程小白在学习Java的时候遇到了转义符的相关问题,我最近也是被\n,\r,\t整的很迷惑,在看了很多篇优快云的文章后,发现自己没有弄清楚反而越是糊涂了,其中之一...原创 2021-02-03 14:21:45 · 5672 阅读 · 2 评论 -
【Java基础】 Arrays类提供的方法
目录前言:数组复制转换为字符串排序搜索判断是否相同填充前言Arrays是针对数组的工具类,可以进行 排序,查找,复制填充等功能。 大大提高了开发人员的工作效率。数组复制与System.arraycopy();类似的, Arrays提供了一个copyOfRange方法进行数组复制。不同的是System.arraycopy,需要事先准备好目标数组,并分配长度。 copyOfRange 只需要源数组就就可以了,通过返回值,就能够得到目标数组了。除此之..原创 2021-02-01 17:55:26 · 345 阅读 · 3 评论 -
【Java基础】 复制数组
1.复制数组把一个数组中的值,复制到另一个数组中System.arraycopy(src, srcPos, dest, destPos, length)src: 源数组srcPos: 从源数组复制数据的起始位置dest: 目标数组destPos: 复制到目标数组的起始位置length: 复制的长度2.练习题目:首先准备两个数组,他俩的长度是5-10之间的随机数,并使用随机数初始化这两个数组,然后准备第三个数组,第三个数组的长度是前两个的和, 通过S...原创 2021-02-01 00:20:19 · 271 阅读 · 1 评论 -
【Java基础】 随机数的3种生成方法
【Java基础】之3种随机数的生成方法目录【Java基础】之3种随机数的生成方法 前言:第一种:new Random();第二种:Math.random();第三种:currentTimeMillis();前言: 生成指定范围内的随机数是最常用的技术之一。程序员希望通过随机数的方式来处理众多的业务逻辑,测试过程中也希望通过随机数的方式生成包含大量数字的测试用例。 而Java中随机数的生成有如下三种方法:...原创 2021-01-31 23:16:58 · 2732 阅读 · 2 评论 -
【Java基础】 增强型for循环
[Java基础] 之增强型for循环前言:增强型for循环只能够用于取数组中的值,而不能用于修改数组中的值,增强型for循环在遍历一个数组的时候会更加快捷。用法:int array[]=new int[]{1,2,3,4,5};for (int everyone : array) { System.out.println(everyone); }普通for循环和增强型for循环的区别:public class furtherFor {原创 2021-01-31 21:56:23 · 645 阅读 · 1 评论 -
【Java基础】 接口
*Java接口 1.接口 1.1接口的概述 接口就是一种公共的规范标准,只要符合标准规范,大家都可以通用 Java中的接口更多的体现在对行为的抽象。 1.2接口的特点 接口的关键字用interface修饰public interface 接口名{} 类实现接口用implements表示public class 类名 implements 接口名{}接口不能实例化若要实现接口的实例化,须通过实现类对象实例...原创 2020-06-21 23:04:00 · 170 阅读 · 0 评论 -
【Java基础】类型转换
【Java基础】之 类型转换1.转换规则精度高的数据类型就像容量大的杯子,可以放更大的数据精度低的数据类型就像容量小的杯子,只能放更小的数据小杯子往大杯子里倒东西,大杯子怎么都放得下大杯子往小杯子里倒东西,有的时候放的下,有的时候就会有溢出需要注意的一点是虽然short和char都是16位的,长度是一样的但是彼此之间,依然需要进行强制转换public class HelloWorld { public static void main(String[] args)原创 2021-01-29 11:03:21 · 385 阅读 · 0 评论