自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(34)
  • 资源 (2)
  • 收藏
  • 关注

原创 java 19新特性简要介绍

Java19于2022年9月底发布。全新的Java版本提供7个JDK增强建议,帮助开发人员提供工作效率,优化Java语言并提升平台的性能、稳定性和安全性。Java19的主要功能将于本月17日至20日在拉斯维加斯举办的JavaOne大会上隆重揭晓。Java19将提供来自OpenJDK Project Amber的语言改进(记录模式和switch匹配模式);支持与非Java代码互操作的本机库增加功能(外部函数和内存API),并利用来自OpenJDK Project Panama的向量指令(向量API);

2023-01-30 17:15:57 1275 1

原创 Restful风格

定义一种软件架构风格、设计风格,而不是标准,只是提供了一组设计原则和约束条件。它主要用于客户端和服务器交互类的软件。基于这个风格设计的软件可以更简洁,更有层次,更易于实现缓存等机制。URL资源:互联网所有的事物都可以被抽象为资源资源操作:使用POST、DELETE、PUT、GET,使用不同方法对资源进行操作。分别对应 添加、 删除、修改、查询。请求方式可以通过 GET、 POST、 PUT、 PATCH、 DELETE 等方式对服务端的资源进行操作。其中,GET 用于查询资源,POST 用于创

2020-09-13 20:25:29 159

转载 Cookie、Session、Token、JWT?

什么是认证?(Authentication)通俗来说就是验证当前用户的身份,证明“你是你自己”。 互联网中的认证:用户名和密码登录 邮箱发送登录链接 手机号接收验证码 只要你能收到邮箱/验证码,就默认你是账号的主人什么是授权(Authorization)用户授予第三方应用访问该用户某些资源的权限在安装手机应用的时候,APP会询问是否允许授予权限(访问相册、地理位置、摄像头开启等) 在访问微信小程序时,当登录时,小程序会询问是否允许授予权限(获取昵称、头像、地区、性别等个人信息)实现

2020-08-23 19:59:40 306

原创 Lambda表达式

一、前言JDK的升级目前有以下几个方面:1、增加新的功能2、修复Bug3、性能优化4、简化代码等Lambda表达式就属于简化代码,用于简化匿名实现类,提供一种更加简洁的写法。Lambda表达式在Swift语言中称之为代码块,Lambda表达式可以认为是一种特殊的接口,该接口必须只有一个抽象方法。@[TOC]二、语法格式二、语法格式(参数类型 参数名, 参数类型 参数名2,... )->{//code};小括号中的内容就是方法中的参数列表,其中参数类型是可以省略的,当参数个数是

2020-08-23 00:35:54 154

转载 Java8 Stream流遍历的方式

原文出处:https://blog.csdn.net/sarielangel/article/details/83899377首先先说明,这篇文章的对比有失公允,stream()和parallelStream()差距还是挺大的,用parallelStream()这种开线程的玩意和单线程比较,有点不公平。Stream流是一个集合元素的函数模型,它并不是集合,也不是数据结构,其本身并不存储任何元素(或其地址值),它只是在原数据集上定义了一组操作。Stream流不保存数据,Stream操作是尽可能惰性的,即

2020-08-07 23:32:54 3666

原创 JAVA中的Properties类

一、java中的Properties类简介Java中有个比较重要的类Properties(Java.util.Properties),主要用于读取java的配置文件,无论是java还是python等,都有自己支持的配置文件。配置文件中的很多变量是经常改变的,为了方便用户使用,让用户能够脱离程序本身去修改相关的变量设置。像Python支持的配置文件是.ini文件,同样,它也有自己读取配置文件的类ConfigParse,方便程序员或用户通过该类的方法来修改.ini配置文件。在Java中,其配置文件常为.pro

2020-07-18 01:52:52 1001

转载 Class.forName()的作用与总结

一、Class类简介Java程序在运行时,Java运行时系统一直对所有的对象进行所谓的运行时类型标识。这项信息纪录了每个对象所属的类。虚拟机通常使用运行时类型信息选准正确方法去执行,用来保存这些类型信息的类是Class类。Class类封装一个对象和接口运行时的状态,当装载类时,Class类型的对象自动创建。Class 没有公共构造方法。Class 对象是在加载类时由Java 虚拟机以及通过调用类加载器中的 defineClass 方法自动构造的,因此不能显式地声明一个Class对象。虚拟机为每种类型管

2020-07-18 00:46:00 275

原创 IDEA快捷键

一、IDEA中设置代码自动提示或快捷键的方法修改方法如下:**(1)**点击 文件菜单(File) –> 点击 设置(Settings… Ctrl+Alt+S), –> 打开设置对话框。(2)在左侧的导航框中点击 KeyMap。(3)在右边的树型框中选择 Main menu –> Code –> Completion.接着需要做两件事:移除原来的Cycle Expand Word 的 Alt+/ 快捷键绑定。在 Basic 上点击右键,去除原来的 Ctrl+空格 绑定

2020-07-17 00:41:21 142

原创 我的第一个JDBC程序

1、准备工作:(1)在windows上安装MySQL。具体可以参考以下链接:https://www.cnblogs.com/xiaojianblogs/p/12728846.html(2)可以通过SQLyog可视化工具,创建一个数据库,建立一个表,并插入以下数据。代码如下:CREATE DATABASE jdbcStudy CHARACTER SET utf8 COLLATE utf8_general_ci;USE jdbcStudy;CREATE TABLE users(

2020-07-16 23:53:48 138

原创 java小白基础(五)

41、java内置的注解Java定义了一套注解,共有七个,3个在java.lang中,剩下的4个在java.lang.annotation中。作用在代码的注解有:@override—检查该方法是否是重载方法。如果发现其父类或者是引用的接口中并没有发现该方法,会报编译错误。@Deprecated—标记过时方法。如果使用该方法,会报编译警告。@SuppressWarnings—指示编译器去忽略注解中声明的警告。作用在其他注解的注解(或者说元注解):@Retention—标识这个注解怎么保存,只在代

2020-07-12 23:54:22 116

原创 java小白基础(四)

31、java异常分类java异常分类如图所示:Error:Error类是指java运行时系统的内部错误和资源耗尽错误。应用程序不会抛出该类对象。如果出现了这样的错误,除了告知用户,剩下的就是尽力使程序安全终止。Exception(RuntimeException和CheckedException)RuntimeException:比如NullPointerException和ClassCastException,它是那些可能在java虚拟机正常运行期间抛出的异常的超类。如果出现这样的异常,一定

2020-07-10 22:14:43 108

原创 淘宝网后台架构演变

基本概念(1)分布式:系统中的多个模块在不同服务器上部署,即可称为分布式系统,如Tomcat和数据库分别部署在不同的服务器上,或两个相同功能的Tomcat分别部署在不同服务器上。(2)高可用:系统中部分结点失效时,其他结点能够接替它继续提供服务,则可认为系统具有高可用性。(3)集群:一个特定领域的软件部署在多台服务器上并作为一个整体提供一类服务,这个整体称为集群。如Zookeeper中的M...

2020-07-09 23:46:28 1002

原创 java小白基础(三)

21、接口和抽象类的区别?(1)接口中的所有方法都是抽象的public abstract。而抽象类可以同时包含抽象方法和非抽象方法。(2)类可以实现多个接口,但是只能继承一个抽象类。在该情况下,类也必须声明为抽象的。(3)接口中的方法是public abstract。抽象类中的方法可以是public、protect、private。(4)接口中的变量只能是public static final,抽象类可以包含非final变量。(5)接口是绝对抽象的,不能被实例化。抽象类也可以不被实例化,但是它如果

2020-07-09 23:41:58 106

原创 java小白基础(二)

11、volatile的作用Java语言提供了一种稍弱的同步机制,即volatile变量,用来确保将变量的更新操作通知到其他线程。当把变量声明为volatile类型后,编译器运行时会注意到这个变量是共享的。因此不会将该变量上的操作与其他内存操作一起重排序。Volatile变量不会被缓存在寄存器或者对其他处理器不可见的地方,因此在读取volatile类型的变量时总会返回新写入的值。在访问volatile变量时不会执行加锁操作,因此也就不会使执行线程阻塞,因此volatile变量是一种比sychronize

2020-07-08 14:29:38 93

原创 java小白基础(一)

java基础1、一个”.Java”源文件中是否可以包含多个类(不是内部类)?有什么限制?可以有多个类,但是只能有一个public类,并且public类与文件名必须保持一致。2、Java有没有goto?Java中的保留字,现在没有在Java中使用。3、深拷贝与浅拷贝的区别?浅拷贝:只是复制了对象的引用地址,两个对象指向同一内存地址,所以修改其中的任意一个值,另外一个都会随之改变。深拷贝:将对象及值均复制过来(指向两个不同的内存空间),修改其中一个另外一个保持不变。4、用最有效率的方法计算出2乘

2020-07-07 12:38:45 147

原创 线程通信方式之:使用Object类的wait()和notify()

线程间通信Object类提供了线程间通信的方法:wait()、notify()、notifyAll(),它们是多线程通信的基础,该方式实现的基本思想是线程间通信。注意:wait()和notify()必须配合使用synchronized,wait()方法需要释放锁,而notify()方法不需要。public class TestSync1 { public static void main(String[] args) { //定义一个锁对象 Object lo

2020-07-06 21:08:25 230

原创 线程间通信方式之:volatile关键字

线程间通信方式之:volatile关键字volatile:线程通信的第一种方式:volatile关键字基于volatile关键字来实现线程间通信是基于共享内存的思想:多个线程同时监听某个某个变量,当该变量发生变量的时候,线程能够感知并执行相应的业务。public class TestSync { //定义一个共享变量来实现通信,通过volatile关键字来修饰。 static volatile boolean notice = false; public static v

2020-07-06 20:36:59 337

转载 Java8 Comparator 排序方法

Java8中Comparator接口中提供了一些静态方法,可以方便我们进行排序操作。(1)对整数列表进行排序(升序)List<Integer> list = Arrays.asList(1, 4, 2, 6, 2, 8);list.sort(Comparator.naturalOrder());System.out.println(list);(2) 对整数列表排序(降序)...

2019-08-21 15:17:35 1043

转载 Qgis开发注意事项

1 QGIS语法1.1类所有类名以Qgs开头:QgsClass成员数据:所有数据为私有,以m为前缀:mMapCanvas成员函数:所有成员函数以小写字母开头。所有成员数据的获取函数直接以其名字为函数名,无前缀。如:mapCanvsa()。1.2C++文件每个类单独一个文件。每个文件头都要有相关的声明注释。1.3 C++名称变量:小写开头,mapCanvas;枚举:大写开头,en...

2019-05-09 10:01:15 367

转载 C++一级指针和二级指针

一级指针通常用作函数的输入参数,因为一级指针作为函数参数,在调用的时候,实参和形参是不同的内存空间,只是,这个内存空间存放的指针指向的是同一块地址,所以形参在函数执行中可以访问实参指向的内存空间,但是形参的指向的改变并不能影响实参。总结一句话:一级指针做函数参数, 在函数内做形参做重新指向并 不会影响实参的指向。一级指针需要注意的问题:1、不要在函数中,改变形参的指向来达到改变实参指向的效...

2019-05-06 21:09:31 990

转载 QGIS二次开发--矢量图层属性图标表示

矢量图层属性的图标显示功能,能够帮助我们以图形化的方式直观地显示数据中的信息,使得数据生动起来的同时也变得美观起来。QgsDiagamRenderV2首先认识一下控制图表的渲染类,QgsDiagramRenderV2。该类在QgsVectorLayer具有引用指针,通过 QgsVectorLayer 的 setDiagramRenderer() 方法,传入一个 QgsDiagramRen...

2019-05-06 08:47:09 2047

转载 Qgis开发---加载矢量、栅格图层

本文主要介绍Qgis如何加载矢量图层原理加载矢量数据,首先要说明此数据的类型以及驱动程序,然后加载相关数据,最后在主窗口中进行显示。QGIS图层数据管理方式2.1 驱动在QGIS中,所有数据由QgsProviderRegistry类统一进行管理,提供对当前驱动的管理。2.2 数据管理所有图层数据由QgsMapLayerRgistry类统一进行管理(单例),监测图层的加载、...

2019-05-05 20:23:30 3297

原创 类的加载、连接和初始化

系统可能在第一次使用某个类时加载该类,也可能采用预加载机制来加载这个类。当我们调用Java命令运行某个Java程序时,该命令将会启动一个Java虚拟机进程,不管Java程序多么复杂,该程序启动了多少个线程,它们都处于该Java虚拟机进程里。同一个jvm的所有线程、所有变量都处于同一个进程里,它们都使用该jvm进程的内存区。当系统出现以下几种情况时,jvm进行将被终止。程序运行到最后正常结束...

2019-04-30 10:40:24 137

翻译 蚂蚁金服面试(Java开发工程师:一面)

ArrayList与LinkedList之间的区别:ArrayList是一个可变大小的数组。当更多的元素加入到ArrayList中时,其大小将会动态增长。内部的元素可以直接通过get与set方法进行访问。LinkedList是一个双向链表,在添加和删除元素时具有比ArrayList更好的性能。但在get与set方面弱于ArrayList。什么情况会造成内存泄露:在Java中,内存泄露就是存...

2019-04-26 20:29:17 597

翻译 线程通信

当线程在系统内运行时,线程调度具有一定的透明性,程序通常无法准确控制线程的轮换执行,但我们可以通过一些机制来保证线程的协调运行。1、传统的线程通信假设现在系统中有两个线程,这两个线程分别代表取钱者和存款者-----并且假设系统有一种特殊的要求,系统要求存款者和取钱者不断地重复存钱、取钱的动作,而且要求每当存款者将钱存入指定账户后,取钱者就立即取出这笔钱。为了实现这种功能,可以借助于Objec...

2019-04-25 19:59:58 87

原创 线程安全问题

1、释放同步监视器的锁定同步监视器的一般步骤:加锁---->修改----->释放线程会在下面几种情况下释放对同步监视器的锁定: 当前线程的同步方法、同步代码块执行结束,当前线程释放同步监视器。 当前线程在同步代码块、同步方法中遇到break、return终止了该代码块、该方法的继续执行。 当前线程在同步代码块、同步方法中出现了未处理的Error、Exception,导致了该...

2019-04-24 12:12:21 93

原创 控制线程(下)

4、线程让步yieldyield()方法是一个和sleep()方法有点类似的方法,它也是Thread类提供的一个静态方法,它也可以让当前正在执行的线程暂停,但它不会阻塞该线程,只是让该线程进入就绪状态。yield()只是让当前线程暂停一下,让系统的线程调度器重新调度一次。举个例子:public class YieldTest extends Thread { public YieldT...

2019-04-24 10:26:54 120

原创 控制线程(上)

Java的线程支持提供了一些快捷的工具方法,通过这些快捷的工具方法可以很好地控制线程的执行。1、join线程Thread提供了让一个线程等待另一个线程完成的方法—join()方法。当在某个程序执行流中调用其他线程的join方法时,调用线程将被阻塞,直到join方法加入的join线程执行完为止。举个例子:public class JoinThread extends Thread{ //...

2019-04-23 21:47:13 171

原创 JAR文件

引言Jar文件的全称是Java Archive File,意思是Java档案文件。通常Jar文件是一种压缩文件,与我们常见的ZIP压缩文件兼容,通常也被称为jar包。当开发了一个应用程序后,这个应用程序包含了很多类,如果需要把这个应用程序提供给别人使用,通常会将这些类文件打包成一个JAR文件,把这个JAR文件提供给别人使用。只要别人在系统的CLASSPATH环境变量中添加这个JAR文件,则Ja...

2019-04-21 20:57:03 8571

原创 正则表达式简介(上)

1、引言正则表达式是一个强大的字符串处理工具,可以对字符串进行查找、提取、分割、替换等操作。正则表达式其实是一个用于匹配字符串的模板。String类里也提供了几个特殊的方法:boolean matches(String regex) //判断该字符串是否匹配指定的正则表达式String replaceAll(String regex, String replacement) //将该字符...

2019-04-21 20:01:38 90

原创 操作集合的工具类Collections(下)

3、同步控制:Collections类中提供了多个synchronizedXxx()方法,该方法可以将指定集合包装成线程同步的集合,从而可以解决多线程并发访问集合时的线程安全问题。Java中常用的集合框架中的实现类HashSet、TreeSet、ArrayList、ArrayDeque、LinkedList、HashMap和TreeMap都是线程不安全的。如果有多个线程访问它们,而且有超过一个...

2019-04-20 15:40:38 112

原创 操作集合的工具类Collections(上)

Java提供了一个操作Set、List和Map等集合的工具类:Collections,该工具类里提供了大量方法对集合元素进行排序、查询和修改等操作,还提供了将集合对象设置为不可变、对集合对象实现同步控制等方法。Collections提供了如下几个方法同于对List集合元素进行排序。static void reverse(List list) //反转指定List集合中元素的顺序sta...

2019-04-19 21:34:47 132

原创 对象序列化

何为对象序列化:指将一个Java对象写入IO流中,与此相对应的是,对象的反序列化(Deserialize),则指从IO流中恢复该Java对象。序列化机制:将实现序列化的Java对象转换成字节序列,这些字节序列可以保存在磁盘上,或者通过网路传输,以备以后重新恢复原来的对象。序列化机制使得对象可以脱离程序的运行而独立存在。换种说法:对象序列化机制允许把内存中的Java对象转换成平台无关的二进制...

2019-04-18 16:32:15 285

转载 Java学习

Java的体系Java SE(J2SE) (Java 2 Platform Standard Edition, JAVA平台标准版) Java EE(J2EE) (Java 2 Platform Enterprise Edition, JAVA平台企业版) Java ME(J2ME) (Java 2 Platform Micro Edition, JAVA平台微型版)Java程序的...

2018-09-05 14:30:50 329 1

养成良好的科学研究习惯.ppt

学术大佬对刚考上的研究生萌新一些科研的想法,如何养成良好的科研习惯,如何在科研的道路上走一条正确、少走弯路的康庄大道!对于研究生来说,作用还是蛮大的。

2020-07-12

移动环境网络仿真.pptx

移动网络仿真环境软件Opnet、NS、QualNet介绍:OPNET Modeler主要面向于研发,主要功能体现在以下四个方面: -设备的研发:一些设备制造商,如3com,Cisco等,在新的设备投入市场之前,需要将其模型放到OPNET的虚拟网络环境中进行验证。 -协议的研发:用于开发用户需要的,或者下一代的通信协议,如IPV6,并且仿真其性能。 -网络的研发:用于分析有线/无线设备组网以后的整体性能与特定参数。 -业务的研发:开发新型的业务模式。

2020-07-12

空空如也

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

TA关注的人

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