自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(30)
  • 问答 (1)
  • 收藏
  • 关注

原创 JDBC Java与数据库 预处理通道

预处理通道可以有效地防止sql注入,更安全更可靠下面这个例子附上源码:Connection connection = null; PreparedStatement pps = null; //返回的结果集 ResultSet resultSet = null; try { //1. 加载驱动 Class.forName("com.mysql.cj.jdbc.Driver");

2021-08-06 23:28:05 224

原创 JDBC 数据库与Java建立的联系 增删改

与查询不同的是使用的方法不同。增删改使用的executeUpdate(sql)方法。返回值为int类型,返回的是数据库中受影响的条数。int result = 0; //当受影响的条数大于0 时则表示成功,等于0 时则是可能失败或者修改的语句在数据库中没有result = statement.executeUpdate("update employee set title='程序员'");//executeUpdate(sql)执行查询 执行增删改的时候使用该条语句这样即可。与上一篇文章查询

2021-08-06 21:03:44 138

原创 JDBC数据库与Java建立联系

首先需要引入包需要包含包含数据库编程所需的JDBC类的包。大多数情况下,使用import java.sql.*就足够 了。然后在Java的 代码步骤上://com包package com;//如上言所述import java.sql.*;public class Demo1 { public static void main(String[] args) { Connection connection = null; Statement statemen

2021-08-06 17:22:38 149

原创 Java 有关xml和json相关重点的知识总结 附代码

1、XMLxml的格式:例如下面这样<books> <book> <name>Java编程入门</name> <info>讲述了Java学习的基础</info> </book> <book> <name>Java进阶之路</name> <info>讲述了Java进阶学习,有难度</info> </book></book

2021-07-28 11:22:36 194 1

原创 Java 客户端与服务端的交互 Socket

在使用客户端与服务端的交互上我们要记住一个点,在运行的时候要先运行服务端,随之而后才运行客户端。先来总结一下服务端的程序过程:在服务端我们需要创建ServerSocket类的对象例如ServerSocket serverSocket = new ServerSocket(12260);这参数尽量写在2000以后(其实范围可写项还可以小一点,不过不建议。0-65536之间都可,但避免写在0-1025之间。)此时服务端已启动。然后需要调用方法:Socket socket = serverSocket

2021-07-26 17:05:01 511

原创 Java 关于文件流IO 序列化与反序列化

我们需要将数据存入文件当中以及将数据从文件当中取出返回的时候,我以Hashtable<K,J>的方式进行阐述:首先我们可以自己写一个类假设为EXpressIOUtil类。类里面定义两个方法一个是将数据从文件中取出的方法,一个是将数据存入文件当中的方法。将数据从文件中取出:public static Object reader(String fileName) throws IOException, ClassNotFoundException { //首先创建一个文件输入流对象fi

2021-07-26 16:44:39 177

原创 Java Lambda函数式编程思想自我总结 JDK8开始

Lambda表达式函数式编程思想​ 面向对象: 创建对象调用方法 解决问题。eg:Thread t = new Thread(()->System.out.println(“12345”));其实就是在匿名内部类的前提下然后只保留参数部分和方法体在()和{}之间增加一个箭头->即可。通俗来讲就是这样。...

2021-07-24 22:49:53 61

原创 Java线程安全问题以及解决方式,附上例子以及代码

线程安全问题解决方法: 排队执行(通过加锁方式。)1.同步代码块,线程同步:synchronized格式: synchronized(锁对象){} 提示:任何对象都可以成为锁对象。当不做任何处理的时候会出现线程不安全的情况,加入三个线程一个任务卖十张票代码如下:package ceshi;/** * 线程安全使用排对机制 synchronized 同步锁 */public class Demo4 { public static void main(String[] args)

2021-07-24 21:56:24 269 1

原创 Java线程相关的内容 Thread类 守护线程 线程休眠 线程中断 线程阻塞

Thread类1、常用方法总结:Thread常用的构造方法:无参构造参数为一个任务的构造方法,例如Runnable实现接口,使用Thread构造:Thread(Runnable target)对线程任务实现命名然后再构造:Thread(Runnable target, String name)或者直接命名的形式:Thread(String name)常用方法:getId的()即是返回此Thread的标识符,返回值类型为long。getName() 返回现成的名称,即是构造方法中

2021-07-24 14:45:23 124

原创 Java 多线程的两种方式 继承Thread类和实现Runnable接口

1、继承Thread首先创建一个类继承Thread类,然后重写run()方法。 run方法就是线程要执行的任务方法。run方法里面的代码就是一条新的执行路径。执行路径的触发方式,是通过Thread对象的start()方法启动任务。main方法为主线程,其他都为分支线程,Thread类的线程与main方法是并发运行的,时间分配是抢占式分配。程序开启,main线程开启,当所有线程执行完之后程序结束。每个线程都拥有自己的栈空间,共用一份堆内存。由一个线程调用的方法,那么这个方法也会执行在这个线程里面。

2021-07-24 11:28:05 1245

原创 Java比较器 Comparator的用法

首先,我们还是需要创建一个Person实体类进行进行我们存储的对象排序里面包含了三个属性name,age,salary。import java.util.Comparator;import java.util.Objects;public class Person{ private String name; private int age; //工资 private int salary; @Override public String toString

2021-07-24 00:42:15 1662

原创 Java Comparable比较器的用法

在使用Comparable比较器实现的样式前,我们先创建一个实体类Person,包含了三个属性,名字name,年龄age,工资salary。package ceshi;import java.util.Objects;public class Person implements Comparable<Person> { private String name; private int age; //工资 private int salary;

2021-07-23 23:19:35 146

原创 Java Map集合有关的内容

Map集合 (与Collection集合一个级别)Map集合存储的是一个个的 键值对 数据。Map集合的键(key)不可重复Interface Map<K,V> (泛型,是两个因为一个Key一个映射的值)常用的方法:增:V put(K key,V value) 将指定的值与映射中的指定键进行关联。返回的是原来的value值,如果原来value为null,则返回的是null。如果不为空那,则返回原来的value。删:第一种方式直接删除key键 V remove(Object

2021-07-20 01:24:52 60

原创 Java Set集合 HashSet、TreeSet

Set集合:(不包含重复元素的集合,最多一个null元素,没有get()方法)Set有一些子类是无序的存储方式。1、HashSet:散列存放,不能保证存储顺序的,是一种无序的存储方式(哈希表在学习HashMap集合石讲解)2、TreeSet: 是一种有序的存储方式,自然顺序。在实现排序的时候我们例如内部类,在排序的时候我们需要自己去布置如何排序,即是要在内部类实现一个Comparable的接口,这个接口里面只有一个方法,就是compareTo方法,此方法就是我们需要实现的方法,方法体我们自定义编写排

2021-07-20 01:23:27 104

原创 Java Map键值对映射的相关常用方法

Map集合 (与Collection集合一个级别)Map集合存储的是一个个的 键值对 数据。Map集合的键(key)不可重复Interface Map<K,V> (泛型,是两个因为一个Key一个映射的值)常用的方法:增:V put(K key,V value) 将指定的值与映射中的指定键进行关联。返回的是原来的value值,如果原来value为null,则返回的是null。如果不为空那,则返回原来的value。删:第一种方式直接删除key键 V remove(Object

2021-07-19 14:45:15 707

原创 Java List相关的Vector类的构造方法及方法的理解

Vector构造方法:默认构造方法Vector(),其内部数据数组的大小为0,增量标准为0,当需要增加的时候,是大小翻一番。有参构造方法Vector(int initialCapacity, int capacityIncrement),第一个参数是数组大小,第二个设置具体的增量。另外两种构造方法见API。Vector实现的方法与ArrayList类似。这里参考上一篇博文。...

2021-07-18 21:13:08 134

原创 Java List的ArrayList的方法的解释加理解(附代码)

ArrayList:使用的是数组结构,对于增加删除慢,查找快。//无参构造方法 创建一个长度为0的数组,要第一次传进去数据的时候才会改为10的长度。每次动态扩容的时候都是扩大为原来的1.5倍。ArrayList<类型> data = new ArrayList<>();data.add(100); //add返回的一一定是true。有三种构造方法,其他两个见API。一些方法的实现://无参构造ArrayList<String> data = new Arr

2021-07-18 20:32:29 526

原创 Java 常用类库的整理 常用类库方法的整理+理解

1、Objects类:​ 包含了static实用程序方法,这些实用程序包括了null或null方法。用于计算对象的哈希代码,返回对象的字符串,比较两个对象以及检查索引或子范围值是否超出范围。​ 方法摘要:​ 难点:变量和类型为:static int方法:compare(T a, T b, Comparator<? super T> c)描述:如果参数相同,则则返回0,否则返回c.compare(a,b)。​ 检查范围的简单来说就是判断是否下标越界三个方法:变量和类型都是stati

2021-07-15 15:29:58 265

原创 Java 关于Date类的总结+一些代码进行解释

Date类,我们只需要关注 Date类表示特定的时刻,精度为毫秒即可。​ 关注它的构造函数(常用):Date();① boolean after(Date when) 测试此日期是否在指定日期之后。boolean before(Date when) 测试此日期是否在指定日期之前。boolean equals(Object obj) 比较两个相等的日期。int compareTo(Date anotherDate) 比较两个日期的前后,如果调用的对象在参数对象时间为前则返回小于0的值,两个日

2021-07-15 14:13:18 163

原创 Java BigDecimal类(常用的方法)和自己的理解

BigDecimal类(常用的方法)​ BigDecimal有自身的构造器,具体构造方法参见API① abs方法 BigDecimal abs(); 一般适用于整数的取绝对值public static void main(String[] args) { BigDecimal B1 = new BigDecimal(-2); System.out.println(B1.abs());}结果:2② add方法 常用下面的这种形式: (常用于两个整数的求值,当b1,b2不为整数

2021-07-15 13:42:39 431

原创 Java 关于Arrays类(常用的方法)总结+自己的理解

Arrays类(常用的方法)① binarySearch(类型名[] arr,类型名 a) 二分查找,查找a在数组arr的位置下标。返回的是一个int型数组下标。当a查询不到时,返回一个小于0的值。​ eg:public static void main(String[] args) { int[] arr = {1,4,7,32,67,100}; int index = Arrays.binarySearch(arr,7); System.out.println(index

2021-07-15 00:58:18 277

原创 Java 关于Math类的总结,常用方法的简单解释

Math类 (常用的总结)​ 当我们需要进行算术运算时,首先想到的是使用Math类的工具。如果Math类没有我们需要的方法,我们再进行自定义方法。​ ① 方法 类型名 abs(类型名 a) 都是返回 a 相应类型的绝对值。​ ② 方法 int/long addExact(int/long a,int/long b) 返回a 与 b的和相应返回类型​ eg:使用int类型:public class MathTest { public static void main(String[

2021-07-14 23:20:47 429

原创 Java Objects类的概述以及自己的理解

Objects类:​ 包含了static实用程序方法,这些实用程序包括了null或null方法。用于计算对象的哈希代码,返回对象的字符串,比较两个对象以及检查索引或子范围值是否超出范围。​ 方法摘要:​ 难点:变量和类型为:static int方法:compare(T a, T b, Comparator<? super T> c)描述:如果参数相同,则则返回0,否则返回c.compare(a,b)。​ 检查范围的简单来说就是判断是否下标越界三个方法:变量和类型都是stati i

2021-07-14 20:02:02 114

原创 Java泛型笔记总结

1、先了解什么是泛型?泛型即“参数化类型”。2、一般的三种使用形式:泛型类:/** * 定义一个泛型类 * @param <T> */class Person<T>{ T data; void setData(T data){ System.out.println(); } T getData(){ return data; }}泛型接口package ceshi;/** * 泛型接

2021-07-14 14:02:55 108

原创 Java关于异常处理需要注意的问题

总结一下在异常处理捕获异常有关的内容:使用try...catch..finally的四种方式:1、将异常分开try{}catch(具体异常类 对象名){}catch(具体异常类 对象名){}finally{}2、将异常写在一个catch里面try{}catch(具体异常类 | 具体异常类 对象名){}finally{}3、直接将所有异常为Exception,捕获所有的异常,这种方式不分受检异常和非受检异常。粗暴的全部捕获try{}catch(Excepti

2021-07-12 15:12:37 126

原创 Java实现数组的动态扩容

数组长度存储数据长度不够时,我们不能直接在原数组进行容量的扩容。因此我们需要进行动态扩容:新建立一个新数组,扩充一个能够存储我们需要的数据的长度,最好超过它。然后将原数组的数据复制给新数组,然后再将新数据继续存储到新数组中,最后将原数组名称等于新数组即可。由于原数组在堆类存储,当被传输之后,原数组将会在合适时机被GC回收。动态扩容的源代码如下://需要存储数据的数组 private Object[] element; //数组的最大容量 private int capacity; //数组.

2021-07-12 00:31:32 937 1

原创 Java可变参数

可变参数代码笔记package com.xzk.cs;public class kbcs { public static void main(String[] args) { System.out.println(sum(1,2,3,4)); System.out.println(sum(1,2,3,4,5,6)); } public static int sum(int... nums) { int n = 0; for(int i = 0;i<nums.len

2021-07-11 13:34:29 33

原创 Java 二分法查找

二分法查找:比如是在有序数组中查找需要查询的数字,它提高了查找的效率,在大数据的查找中有更为广阔的作用。Java语言二分法: int maxIndex = nums.length; int minIndex = 0; int midIndex = (maxIndex+minIndex)/2; boolean flag = true; while(flag) { if(target>nums[midIndex]) { minIndex = midIndex+1;

2021-07-10 17:41:50 112 1

原创 Java语言 冒泡排序法

nums[]数组的定义双重循环 外层循环座位需要排的次数i,数组长度-1;内层循环时做为在一次排序中需要比较的次数j,数组长度-i-1。冒泡排序升序:for(int i = 0;i<nums.length-1;i++) { for(int j = 0;j<nums.length-i-1;j++) { int temp = 0; if(nums[j]>nums[j+1]) { temp = nums[j]; nums[j] = nums[j+1

2021-07-10 17:30:23 95

原创 Java基础学习中数组遇到的问题及解决方式

数组遇到的问题及解决方式在做一个简单的快递e栈的综合练习中,我遇到的一个难点就在于只使用数组来存取数据。原问题是需要存取快递单号,快递公司以及取件码,快递员可操作快递单号,快递公司,自动生成取件码,用户只可操作取件码。 在将快递单号,快递公司,以及取件码一一对应时我遇到了如果将此三个属性存到一个数组中,于是我建立了三个数组,分别存取存取这三个属性,由快递单号作为三个数组的下标进行对取件码以及公司的一一对应。 这个时候又遇到了新的问题:我将...

2021-07-10 11:22:14 628 2

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除