Java
文章平均质量分 90
Java相关知识
桃花岛外里三千
这个作者很懒,什么都没留下…
展开
-
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 · 1291 阅读 · 1 评论 -
Restful风格
定义一种软件架构风格、设计风格,而不是标准,只是提供了一组设计原则和约束条件。它主要用于客户端和服务器交互类的软件。基于这个风格设计的软件可以更简洁,更有层次,更易于实现缓存等机制。URL资源:互联网所有的事物都可以被抽象为资源资源操作:使用POST、DELETE、PUT、GET,使用不同方法对资源进行操作。分别对应 添加、 删除、修改、查询。请求方式可以通过 GET、 POST、 PUT、 PATCH、 DELETE 等方式对服务端的资源进行操作。其中,GET 用于查询资源,POST 用于创原创 2020-09-13 20:25:29 · 173 阅读 · 0 评论 -
Cookie、Session、Token、JWT?
什么是认证?(Authentication)通俗来说就是验证当前用户的身份,证明“你是你自己”。 互联网中的认证:用户名和密码登录 邮箱发送登录链接 手机号接收验证码 只要你能收到邮箱/验证码,就默认你是账号的主人什么是授权(Authorization)用户授予第三方应用访问该用户某些资源的权限在安装手机应用的时候,APP会询问是否允许授予权限(访问相册、地理位置、摄像头开启等) 在访问微信小程序时,当登录时,小程序会询问是否允许授予权限(获取昵称、头像、地区、性别等个人信息)实现转载 2020-08-23 19:59:40 · 322 阅读 · 0 评论 -
Lambda表达式
一、前言JDK的升级目前有以下几个方面:1、增加新的功能2、修复Bug3、性能优化4、简化代码等Lambda表达式就属于简化代码,用于简化匿名实现类,提供一种更加简洁的写法。Lambda表达式在Swift语言中称之为代码块,Lambda表达式可以认为是一种特殊的接口,该接口必须只有一个抽象方法。@[TOC]二、语法格式二、语法格式(参数类型 参数名, 参数类型 参数名2,... )->{//code};小括号中的内容就是方法中的参数列表,其中参数类型是可以省略的,当参数个数是原创 2020-08-23 00:35:54 · 163 阅读 · 0 评论 -
Java8 Stream流遍历的方式
原文出处:https://blog.csdn.net/sarielangel/article/details/83899377首先先说明,这篇文章的对比有失公允,stream()和parallelStream()差距还是挺大的,用parallelStream()这种开线程的玩意和单线程比较,有点不公平。Stream流是一个集合元素的函数模型,它并不是集合,也不是数据结构,其本身并不存储任何元素(或其地址值),它只是在原数据集上定义了一组操作。Stream流不保存数据,Stream操作是尽可能惰性的,即转载 2020-08-07 23:32:54 · 3697 阅读 · 0 评论 -
JAVA中的Properties类
一、java中的Properties类简介Java中有个比较重要的类Properties(Java.util.Properties),主要用于读取java的配置文件,无论是java还是python等,都有自己支持的配置文件。配置文件中的很多变量是经常改变的,为了方便用户使用,让用户能够脱离程序本身去修改相关的变量设置。像Python支持的配置文件是.ini文件,同样,它也有自己读取配置文件的类ConfigParse,方便程序员或用户通过该类的方法来修改.ini配置文件。在Java中,其配置文件常为.pro原创 2020-07-18 01:52:52 · 1019 阅读 · 0 评论 -
Class.forName()的作用与总结
一、Class类简介Java程序在运行时,Java运行时系统一直对所有的对象进行所谓的运行时类型标识。这项信息纪录了每个对象所属的类。虚拟机通常使用运行时类型信息选准正确方法去执行,用来保存这些类型信息的类是Class类。Class类封装一个对象和接口运行时的状态,当装载类时,Class类型的对象自动创建。Class 没有公共构造方法。Class 对象是在加载类时由Java 虚拟机以及通过调用类加载器中的 defineClass 方法自动构造的,因此不能显式地声明一个Class对象。虚拟机为每种类型管转载 2020-07-18 00:46:00 · 289 阅读 · 0 评论 -
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 · 151 阅读 · 0 评论 -
我的第一个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 · 148 阅读 · 0 评论 -
java小白基础(五)
41、java内置的注解Java定义了一套注解,共有七个,3个在java.lang中,剩下的4个在java.lang.annotation中。作用在代码的注解有:@override—检查该方法是否是重载方法。如果发现其父类或者是引用的接口中并没有发现该方法,会报编译错误。@Deprecated—标记过时方法。如果使用该方法,会报编译警告。@SuppressWarnings—指示编译器去忽略注解中声明的警告。作用在其他注解的注解(或者说元注解):@Retention—标识这个注解怎么保存,只在代原创 2020-07-12 23:54:22 · 123 阅读 · 0 评论 -
java小白基础(四)
31、java异常分类java异常分类如图所示:Error:Error类是指java运行时系统的内部错误和资源耗尽错误。应用程序不会抛出该类对象。如果出现了这样的错误,除了告知用户,剩下的就是尽力使程序安全终止。Exception(RuntimeException和CheckedException)RuntimeException:比如NullPointerException和ClassCastException,它是那些可能在java虚拟机正常运行期间抛出的异常的超类。如果出现这样的异常,一定原创 2020-07-10 22:14:43 · 113 阅读 · 0 评论 -
java小白基础(三)
21、接口和抽象类的区别?(1)接口中的所有方法都是抽象的public abstract。而抽象类可以同时包含抽象方法和非抽象方法。(2)类可以实现多个接口,但是只能继承一个抽象类。在该情况下,类也必须声明为抽象的。(3)接口中的方法是public abstract。抽象类中的方法可以是public、protect、private。(4)接口中的变量只能是public static final,抽象类可以包含非final变量。(5)接口是绝对抽象的,不能被实例化。抽象类也可以不被实例化,但是它如果原创 2020-07-09 23:41:58 · 118 阅读 · 0 评论 -
java小白基础(二)
11、volatile的作用Java语言提供了一种稍弱的同步机制,即volatile变量,用来确保将变量的更新操作通知到其他线程。当把变量声明为volatile类型后,编译器运行时会注意到这个变量是共享的。因此不会将该变量上的操作与其他内存操作一起重排序。Volatile变量不会被缓存在寄存器或者对其他处理器不可见的地方,因此在读取volatile类型的变量时总会返回新写入的值。在访问volatile变量时不会执行加锁操作,因此也就不会使执行线程阻塞,因此volatile变量是一种比sychronize原创 2020-07-08 14:29:38 · 100 阅读 · 0 评论 -
java小白基础(一)
java基础1、一个”.Java”源文件中是否可以包含多个类(不是内部类)?有什么限制?可以有多个类,但是只能有一个public类,并且public类与文件名必须保持一致。2、Java有没有goto?Java中的保留字,现在没有在Java中使用。3、深拷贝与浅拷贝的区别?浅拷贝:只是复制了对象的引用地址,两个对象指向同一内存地址,所以修改其中的任意一个值,另外一个都会随之改变。深拷贝:将对象及值均复制过来(指向两个不同的内存空间),修改其中一个另外一个保持不变。4、用最有效率的方法计算出2乘原创 2020-07-07 12:38:45 · 153 阅读 · 0 评论 -
线程间通信方式之:volatile关键字
线程间通信方式之:volatile关键字volatile:线程通信的第一种方式:volatile关键字基于volatile关键字来实现线程间通信是基于共享内存的思想:多个线程同时监听某个某个变量,当该变量发生变量的时候,线程能够感知并执行相应的业务。public class TestSync { //定义一个共享变量来实现通信,通过volatile关键字来修饰。 static volatile boolean notice = false; public static v原创 2020-07-06 20:36:59 · 350 阅读 · 0 评论 -
正则表达式简介(上)
1、引言正则表达式是一个强大的字符串处理工具,可以对字符串进行查找、提取、分割、替换等操作。正则表达式其实是一个用于匹配字符串的模板。String类里也提供了几个特殊的方法:boolean matches(String regex) //判断该字符串是否匹配指定的正则表达式String replaceAll(String regex, String replacement) //将该字符...原创 2019-04-21 20:01:38 · 98 阅读 · 0 评论 -
JAR文件
引言Jar文件的全称是Java Archive File,意思是Java档案文件。通常Jar文件是一种压缩文件,与我们常见的ZIP压缩文件兼容,通常也被称为jar包。当开发了一个应用程序后,这个应用程序包含了很多类,如果需要把这个应用程序提供给别人使用,通常会将这些类文件打包成一个JAR文件,把这个JAR文件提供给别人使用。只要别人在系统的CLASSPATH环境变量中添加这个JAR文件,则Ja...原创 2019-04-21 20:57:03 · 8596 阅读 · 0 评论 -
蚂蚁金服面试(Java开发工程师:一面)
ArrayList与LinkedList之间的区别:ArrayList是一个可变大小的数组。当更多的元素加入到ArrayList中时,其大小将会动态增长。内部的元素可以直接通过get与set方法进行访问。LinkedList是一个双向链表,在添加和删除元素时具有比ArrayList更好的性能。但在get与set方面弱于ArrayList。什么情况会造成内存泄露:在Java中,内存泄露就是存...翻译 2019-04-26 20:29:17 · 609 阅读 · 0 评论 -
对象序列化
何为对象序列化:指将一个Java对象写入IO流中,与此相对应的是,对象的反序列化(Deserialize),则指从IO流中恢复该Java对象。序列化机制:将实现序列化的Java对象转换成字节序列,这些字节序列可以保存在磁盘上,或者通过网路传输,以备以后重新恢复原来的对象。序列化机制使得对象可以脱离程序的运行而独立存在。换种说法:对象序列化机制允许把内存中的Java对象转换成平台无关的二进制...原创 2019-04-18 16:32:15 · 300 阅读 · 0 评论 -
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 · 339 阅读 · 1 评论 -
控制线程(上)
Java的线程支持提供了一些快捷的工具方法,通过这些快捷的工具方法可以很好地控制线程的执行。1、join线程Thread提供了让一个线程等待另一个线程完成的方法—join()方法。当在某个程序执行流中调用其他线程的join方法时,调用线程将被阻塞,直到join方法加入的join线程执行完为止。举个例子:public class JoinThread extends Thread{ //...原创 2019-04-23 21:47:13 · 180 阅读 · 0 评论 -
控制线程(下)
4、线程让步yieldyield()方法是一个和sleep()方法有点类似的方法,它也是Thread类提供的一个静态方法,它也可以让当前正在执行的线程暂停,但它不会阻塞该线程,只是让该线程进入就绪状态。yield()只是让当前线程暂停一下,让系统的线程调度器重新调度一次。举个例子:public class YieldTest extends Thread { public YieldT...原创 2019-04-24 10:26:54 · 128 阅读 · 0 评论 -
线程安全问题
1、释放同步监视器的锁定同步监视器的一般步骤:加锁---->修改----->释放线程会在下面几种情况下释放对同步监视器的锁定: 当前线程的同步方法、同步代码块执行结束,当前线程释放同步监视器。 当前线程在同步代码块、同步方法中遇到break、return终止了该代码块、该方法的继续执行。 当前线程在同步代码块、同步方法中出现了未处理的Error、Exception,导致了该...原创 2019-04-24 12:12:21 · 101 阅读 · 0 评论 -
操作集合的工具类Collections(上)
Java提供了一个操作Set、List和Map等集合的工具类:Collections,该工具类里提供了大量方法对集合元素进行排序、查询和修改等操作,还提供了将集合对象设置为不可变、对集合对象实现同步控制等方法。Collections提供了如下几个方法同于对List集合元素进行排序。static void reverse(List list) //反转指定List集合中元素的顺序sta...原创 2019-04-19 21:34:47 · 138 阅读 · 0 评论 -
操作集合的工具类Collections(下)
3、同步控制:Collections类中提供了多个synchronizedXxx()方法,该方法可以将指定集合包装成线程同步的集合,从而可以解决多线程并发访问集合时的线程安全问题。Java中常用的集合框架中的实现类HashSet、TreeSet、ArrayList、ArrayDeque、LinkedList、HashMap和TreeMap都是线程不安全的。如果有多个线程访问它们,而且有超过一个...原创 2019-04-20 15:40:38 · 117 阅读 · 0 评论 -
类的加载、连接和初始化
系统可能在第一次使用某个类时加载该类,也可能采用预加载机制来加载这个类。当我们调用Java命令运行某个Java程序时,该命令将会启动一个Java虚拟机进程,不管Java程序多么复杂,该程序启动了多少个线程,它们都处于该Java虚拟机进程里。同一个jvm的所有线程、所有变量都处于同一个进程里,它们都使用该jvm进程的内存区。当系统出现以下几种情况时,jvm进行将被终止。程序运行到最后正常结束...原创 2019-04-30 10:40:24 · 146 阅读 · 0 评论 -
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 · 1052 阅读 · 0 评论 -
线程通信
当线程在系统内运行时,线程调度具有一定的透明性,程序通常无法准确控制线程的轮换执行,但我们可以通过一些机制来保证线程的协调运行。1、传统的线程通信假设现在系统中有两个线程,这两个线程分别代表取钱者和存款者-----并且假设系统有一种特殊的要求,系统要求存款者和取钱者不断地重复存钱、取钱的动作,而且要求每当存款者将钱存入指定账户后,取钱者就立即取出这笔钱。为了实现这种功能,可以借助于Objec...翻译 2019-04-25 19:59:58 · 94 阅读 · 0 评论