自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(29)
  • 收藏
  • 关注

原创 sql语句实现查询某⼈的排名,分数相同排名相同

sql语句实现查询某⼈的排名,分数相同排名相同

2022-09-05 14:14:36 1314 1

原创 变量.equals(值)与值.equals(变量)的区别

String a ="a";"a".equals(a); 这是对的。String a = null;a.equals("a"); 这就错了一般是防止 传过来的变量是NULL值 而报异常。以下是Java 判断字符串是否为空的四种方法:方法一: 最多人使用的一个方法, 直观, 方便, 但效率很低:if(s == null ||"".equals(s));方法二: 比较字符串长度, 效率高, 是我知道的最好一个方法:if(s == ...

2022-02-26 10:17:36 535

原创 mybatis插入数据的时候就得到主键

在使用mybatis时,有些情况下需要在插入后获得刚才数据库为我们生成的那条记录的主键,但是如果我们不告诉数据库:“我插入这条信息后你把刚才插入的那条记录的主键告诉我,我有用!”,那么数据库是不会给我们返回的。有的人可能说,我可以一会再把它查出来啊~,这样确实可以,但是有些多此一举的味道,而且还要再写一个方法来查询。像这样又插入又能得到我们想要的信息,一举两得。注意:并不是返回值是主键,而是将主键的值写入到我们配置的keyProperty,因为我们的主键一般是数据库自己生成的,也就是说我们在向数

2022-02-26 10:15:47 700

原创 三大不安全案例解决过程

synchronized方法块和方法体集合例子public static void main(String[] args) { List<String> list = new ArrayList<>(); for (int i = 0; i < 10000; i++) { new Thread(()->{ synchronized (list){ list.add(Thr

2021-08-19 20:30:45 93

原创 线程API

线程方法 setPriority(int newPriority) 更改线程的优先级 static void sleep(long millis) 在指定的毫秒数内让当前正在执行的线程休眠 void join() 等待该线程终止 static void yieId() ...

2021-08-19 20:28:47 58

原创 三种创建方式

三种创建方式 Thread class 继承Thread类(源码中实现了runnable接口) Runnable接口 实现Runnable接口 Callable接口 实现Callable接口继承Thread类 子类继承Thread类具备多线程能力 启动线程:子类对象.start() 不建议使用:避免oop单继承局限性实现Runnable接口 实现Runnable接口具有多线程能力 启动线程...

2021-08-19 20:25:31 118

原创 jdbc原生连接数据库

public static void main(String[] args) throws Exception { //1、加载驱动 固定写法 //MySQL8中com.mysql.cj.jdbc.Driver Class.forName("com.mysql.jdbc.Driver"); //2、用户信息和URL //useUnicode=true支持中文编码&characterEncoding=utf8设置字符集&useSSL=true使..

2021-08-19 20:17:35 229

原创 静态代理模式

总结:真实对象和代理对象都要实现同一个接口 代理对象要代理真实角色好处:代理对象可以做很多真实对象做不了的事情 真实对象专注做自己的业务//静态代理public class StaticProky {public static void main(String[] args) {You you = new You();//WeddingCompany是代理类,Thread也是代理类...

2021-08-19 20:16:23 40

原创 UDP实现聊天

发短信:不用连接,需要知道对方的地址发送消息发送端public class UdpClientDemo01 {public static void main(String[] args) throws Exception{//1、建立一个socketDatagramSocket socket = new DatagramSocket();//2、发送的数据,端口,IP地址String msg = ...

2021-08-19 20:14:30 42

原创 TCP基础

客户端 1、连接服务器Socket 2、发送消息public class TcpClientDemo1 {public static void main(String[] args) throws Exception{//获取服务器的地址,端口号InetAddress serverIP = InetAddress.getByName("127.0.0.1");int port = 9999;/...

2021-08-19 20:13:19 56

原创 Java泛型

本质:参数化类型,把类型作为参数传递。把类型明确的工作推迟到调用的时候才去明确的一种特殊类型。常见形式有泛型类、泛型接口、泛型方法。语法:<E,...>E称为类型占位符,标识一种引用类型。好处:(1)提高代码的重用性 (2)防止类型转换异常,提高代码的安全性泛型类public class Demo<E>{ //1、使用泛型E //创建变量 E e; //2、泛型作为方...

2021-08-19 20:11:47 50

原创 重写equals方法

public class Student{ String name; int age; public String getName(String name){ this.name=name; } public int getAge(int age){ this.age=age; } public boolean equals(Object obj){ //1、判断是不是同一个对象 ...

2021-08-19 20:10:43 44

原创 异常的五个关键字

异常处理有五个关键字try、catch、finally、throw、throwsfinally无论有没有出现异常,最后都会运行try、catch捕获异常throw、throws抛出异常IDEA快捷键Ctrl+Alt+Tpublic static void main(String[] args) {int a = 10;int b = 0;try{//try监控区new Demo01().a();}catch (E...

2021-08-19 20:09:51 1848

原创 lambda表达式

JDK1.8新特性:lambda表达式接口中必须只有一个方法//逐步简化过程public class TestLambda1 { //3、静态内部类 static class Like2 implements Ilike{ @Override public void lambda() { System.out.println("I Like Lambda2!"); } } publi

2021-07-08 19:56:12 55

原创 I/O流

流的分类按方向【重点】输入流:将<存储设备>中的内容读入到<内存>中。(将存储设备中的内容读入到程序中)输出流:将<内存>中的内容写入到<存储设备>中。(将程序产生的内容写入到存储设备中)按单位字节流:以字节为单位,可以读写所有数据字符流:以字符为单位,只能读写文本数据按功能节点流:具有实际传输数据的读写功能过滤流:在节点流的基础之上增强功能字节流的父类(抽象类)InputStream:字节输入流

2021-07-06 19:35:43 50

原创 集合的使用

List实现类ArrayList:数组结构,查询快、增删慢、运行效率高线程不安全;Vertor:数组结构、查询快、增删慢、运行效率慢线程安全;LinkedList:链表结构、增删快、查询慢;Set实现类HashSet:基于HashCode计算元素存放位置。当存入元素的哈希值相同时,会调用equals进行确认,如结果为true,则拒绝后者存入TreeSet:基于排列顺序实现元素不重复。实现了SortedSet接口,对集合元素自动排序。元素对象的类型必须实现Compara

2021-07-05 16:37:44 58

原创 获取日期时间

public static void main(String[] args){ //创建Calendar对象 Calendar calendar = Calendar.getInstance(); System.out.println(calendar.getTime.tolocaleString());//结果为2020-4-5 11:00:00 System.out.println(calendar.getTimeInMillis());//结果为毫秒158617159.

2021-07-05 11:24:12 253

原创 BigDecimal的使用

在于某些环境中,double运算会导致所得结果不准确public static void main(String[] args){ double d1 = 1.0; double d2 = 0.9; System.out.println(d1-d2);//结果为0.099999999999998 double result = (1.4-0.5)/0.9; System.out.println(result);//结果为0.999999999999}...

2021-07-05 10:54:36 113

原创 String/StringBuffer/StringBuild

String:操作少量数据StringBuffer:操作大量数据,多线程,效率低,线程安全StringBuilder:操作大量数据,单线程,效率高,线程不安全StringBuffer和StringBuilder使用方式一致StringBuffer sb = new StringBuffer();//append()追加sb.append("Java世界第一");Systeam.out.println(sb.toString());sb.append("Java真香");Sy

2021-07-05 10:27:05 111

原创 static静态代码块

public class Demo { //2:赋初值 { System.out.println("匿名代码块"); } //1:只执行一次,并且第一个执行 static{ System.out.println("静态代码块"); } //3 public Demo(){ System.out.println("构造方法"); } // 说明static首次new时会执.

2021-07-01 21:54:23 61

原创 Java三大基本特性(封装、继承、多态)

封装:即隐藏功能的属性和实现细节,仅对外公开接口,控制在程序中属性的读和修改的访问级别。private get set属性私有,只能通过get和set方法访问。(私有属性,公开方法)继承:子类继承父类的变量和方法。并可以重新定义、追加属性和方法。私有的(private)无法继承当子类和父类拥有相同的参数时,通过super.参数来调用父类的参数多态:首先是建立在继承的基础上,先有了继承才能有多态。多态指不同的子类在继承父类后,分别重写覆盖了父类的方法。即父类同一个.

2021-07-01 21:36:12 50

原创 关键字super,子类调用父类属性

注意点: 1、super调用父类的构造方法,必须在构造方法的第一个。 2、super必须只能出现在子类的方法或构造方法中! 3、super和this不能同时调用构造方法! 在继承中,子类要调用父类的属性,需要使用super关键字VSthis: 代表的对象不同 this:代表调用这个对象 super:代表父类对象的应用 前提 this:没有继承也可以使用 super:只能在...

2021-07-01 21:35:29 2947

原创 无参构造和有参构造

无参构造器也是一个没有参数的方法无参构造器是类中默认存在的,new一个对象时,其实就是运行了该对象的无参构造器//学生类public class Student { String name; int age; public Student() { /*这个就是无参构造,当其他方法new这个student这个类时,调用的就是这个无参构造器,不手写也是默认存在的*/ } public Student(Stri

2021-07-01 21:35:02 1068

原创 值传递和引用传递

值传递:传递值(需要返回改变的值,否则改变无效)public static void main(String[] args) { int a =1; System.out.println(a);//1 method(a);//传递的是值,但是此处没有将值返回,所以结果还是1 System.out.println(a);//1}public static void method (int a){ a=10;}引用传递:传递对象(不需要返回对象,对象中的值

2021-07-01 21:33:28 34

原创 数组冒泡排序

public static void main(String[] args) { int[] array = {21,31,5,4,65,76,78,791,1,2}; //int[] a=Arrays.sort(array);//Array自带的排序方法 int[] a=sort(array); System.out.println(Arrays.toString(a));}//冒泡排序//比较数组中,两个相邻的数,如果第一个数比第二个大,调换位置//每一次比较,.

2021-07-01 21:29:07 44

原创 数组的定义

数组是相同类型数据的有序集合。数组描述的是相同类型的若干个数据,按照一定的先后顺序组合而成。其中,每一个数据称作一个数据元素,每个数组元素可以通过一个下标来访问它们。简单创建数组//静态初始化int[] a = new int[]{1,2,3,4,5,6,7,8,9};int[] a ={1,2,3,4,5,6,7,8,9};//动态初始化int[] b = new int[4];b[0] = 1;b[1] = 2;b[2] = 3;b[3] = 4;

2021-07-01 21:27:03 84

原创 内存分析理解

栈:存放基本变量类型(会包含这个基本类型的具体数值)(八大基本类型:byte,short,int,long,float,double,char,booelan) 引用对象的变量(会存放这个引用在堆里面的具体地址) int [] array;//声明是在栈中堆:存放new的对象和数组 可以被所有的线程共享,不会存放别的对象引用 array = new int[10];//当new了新数组时,就进入了堆中...

2021-07-01 21:25:31 34

原创 重载和重写的区别

重载:同一个类中,方法名相同,传入的参数顺序、数量、类型不同。与返回值无关。重写:子类继承父类的方法,并重新实现该方法。特征:重载(Overload):首先是位于一个类之中或者其子类中,具有相同的方法名,但是方法的参数不同,返回值类型可以相同也可以不同。重载的特征:(1):方法名必须相同(2):方法的参数列表一定不一样。(3):访问修饰符和返回值类型可以相同也可以不同。重写(override):一般都是表示子类和父类之间的关系,其主要的特征是:方法名相同,参数相同,但

2021-07-01 21:24:44 78

原创 public/private/protected的具体区别

要继承使用的话要用protected声明。 (子孙类也可以用)。1、public:public表明该数据成员、成员函数是对所有用户开放的,所有用户都可以直接进行调用2、private:private表示私有,私有的意思就是除了class自己之外,任何人都不可以直接使用。3、protected:protected对于子女、朋友来说,就是public的,可以自由使用,没有任何限制,而对于其他的外部class,protected就变成private。扩展资料:三种类型的继承,父类的成员均被

2021-07-01 21:22:41 514

空空如也

空空如也

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

TA关注的人

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