![](https://img-blog.csdnimg.cn/20200307225648565.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Java基础
文章平均质量分 72
Java相关基础知识的学习与记录。
applying
这个作者很懒,什么都没留下…
展开
-
Java I/O模型笔记
学习笔记,整理I/O过程,区分同步异步,阻塞非阻塞常见概念,整理I/O模型,Java I/O模型1. I/O 过程我们编写的程序是运行在用户空间中,而用户空间无法直接操作内核空间,这就意味着,我们编写的程序,是无法直接访问由内核管理的I/O。因此,通常用户进程中的一次完成I/O交互应分为两个阶段:I/O调用阶段:应用程序向内核发起系统调用I/O执行阶段:等待数据阶段:内核等待I/O设备(磁盘/网络)准备数据拷贝数据阶段:将数据从内核缓存区拷贝到用户空间缓冲区从上面这个流程我们可.原创 2021-04-11 11:41:27 · 282 阅读 · 0 评论 -
【JAVA基础】重复使用同一输入流
博主在工作中遇到问题:需要对读入的文件 (MultipartFile) 计算 MD5,同时又需要将其上传到 S3上,即需要对同一输入流进行操作,但是按照流本身所代表的抽象含义,数据一旦流过去,就无法被再次使用。这里给出三种解决的方法:1. 将输入流转换为文件这种方式最容易想到,既然需要多次使用,就可以将流转为文件,写入磁盘中,需要的时候再从磁盘读取文件,缺点在于从磁盘写入和读取较为耗时。代码如...原创 2020-03-10 00:26:39 · 1153 阅读 · 0 评论 -
【JAVA基础】JAVA的三种注释以及 javadoc工具的使用
java的注释一种有三种单行注释多行注释文档注释单行注释和多行注释比较好理解,直接贴例子// 这里是单行注释/* 这里是多行注释*/文档注释,是java特有的注释方法,作用有两点:第一是可以让文档显得具有专业水准,同时方便开发人员之间的交流第二是为了利用javadoc的工具,生成一个HTML文档,而我们平时看的api文档,就是通过对标准java库类的源...原创 2018-06-08 21:01:20 · 1883 阅读 · 0 评论 -
查看JAVA API以及JAVA源码的方法
在java的日常学习中,我们有时候会需要看java的api说明,或者是查看java的源码,使我们更好的了解java,接下来我就来说说如何查看java的api以及java源码对于java的api,一般是在下面的网址中进行查看 https://docs.oracle.com/javase/8/docs/api/而对于java的源码,我们现在来演示查看nextLine()的源码: 将鼠标...原创 2018-06-05 01:27:07 · 34833 阅读 · 23 评论 -
JAVA多线程学习笔记(二):线程同步的方法以及线程间通讯
博主最近在学习高洪岩编写的《Java多线程编程核心技术》,之前有一篇:JAVA多线程学习笔记(一): 多线程的基础概念以及Thread类常用方法介绍这一篇主要整理的是线程同步的方法以及线程间通讯:文章目录4 线程同步4.1 线程不安全4.1.1 现象&原因4.1.2 如何解决4.1.3 注意点4.2 synchronized 关键字4.2.1 简介4.2.2 同步代码块4.2.3 同...原创 2018-11-27 22:42:53 · 217 阅读 · 0 评论 -
【JAVA基础】JAVA8中 抽象类和接口的异同
1. 抽象类什么是抽象类:Java语言中,可以通过把类或者类中的某些方法声明为 abstract 来表示一个类是抽象类。抽象类跟普通类区别不大,唯一的区别就是抽象类中可以包含抽象方法,且抽象类不可以被实例化。那我们为什么要使用抽象类呢?这里我个人觉得,在自下而上的类的继承层次结构中上移,位于上层的类更具有通用性,甚至有可能,在高层中的一些基类,有一些方法是不用实现的,具有抽象性的。例如:...原创 2018-11-20 01:19:02 · 578 阅读 · 0 评论 -
【JAVA基础】JAVA 53个关键字总结
文章目录1. 简化版2. 详解版2.1. 数据类型2.2. 与包相关2.3. 访问修饰符的关键字2.4. 流程控制(循环、条件)2.5. 错误处理2.6. 保留字2.7. 类相关2.8. 线程2.9. 断言2.10. transient2.11. native2.12. strictfp1. 简化版关键字含义关键词含义abstract表明类或成员方法具有抽象的属性a...原创 2018-10-31 16:56:24 · 457 阅读 · 0 评论 -
【JAVA基础】JAVA进制转换
博主学生党,在做面试题的时候,偶尔会碰到进制转换的题目,稍微总结了一下个人的做法,发出来供大家参考一.十进制转为其他进制 1.使用java自带的方法int decimalNumber = 60;// 十进制转十六进制,运行结果输出:3cSystem.out.println(Integer.toHexString(decimalNumber));// 十进制转八进制,运行结果输出:7...原创 2018-06-04 11:42:35 · 646 阅读 · 0 评论 -
JAVA 同时编译多个java文件
博主近期在用JNI时,直接有一篇JNI的demo: https://blog.csdn.net/Applying/article/details/81572167 在生成头文件的时候,发现在某个java文件中,使用了其他的自己定义的类,发现没有办法通过我们熟悉的javac xx.java 来直接编译,所以查阅了一些资料,总结了一下: 关于java编译的过程,最熟悉的便是:通过javac命令生...原创 2018-09-07 00:19:57 · 20897 阅读 · 2 评论 -
JNI技术学习(二):Java 与 C++ 之间传递String,自定义类,自定义类的数组
博主在实习中遇到了实际开发的问题,关于JNI,之前已经有一个博客和小的demo: https://blog.csdn.net/Applying/article/details/81572167现在的需求是:JAVA端获取到一定格式的数据,之后传递给C++端,C++端获取这部分数据之后,进行算法的操作,之后重新以另外结构的格式传递给JAVA端使用。思路:JAVA端我采用类的方式来存数据,然...原创 2018-09-08 02:28:03 · 3596 阅读 · 2 评论 -
JAVA多线程学习笔记(一): 多线程的基础概念以及Thread类常用方法介绍
博主最近在学习高洪岩编写的《Java多线程编程核心技术》,以下是我的学习笔记:1.关于java多线程的一些重要概念1.1 线程、进程1.1.1 基本定义1.1.2 区别1.2 多线程、并发、并行1.2.1 多线程1.2.2 并发(concurrency)1.2.3 并行(parallel)1.2.4 区别1.3 同步、异步1.3.1 同步1.3.2 异步1....原创 2018-08-18 20:16:51 · 344 阅读 · 0 评论 -
JNI技术学习(一):在Java中调用C++/C代码
博主近期在实习,遇到一个需要,就是如何在JAVA代码中调用C++的算法。背景:已经有封装好的C++算法,然后现在要用JAVA语言编写一个平台,要在平台中调用已经写好的C++代码。这里我们就要借助:JNI。 JNI是Java Native Interface的缩写,它是JDK的一部分,提供了若干的API实现Java和其他语言的通信(主要是C或C++)。但这种有一个缺点就是使用Java与本地已编译的...原创 2018-08-11 00:59:32 · 1185 阅读 · 0 评论 -
java 发送http请求获得json 以及解析json
博主在做一款图书app的后台,最近遇到的一个需求: 前端向后端返回图书的isbn码,后端向前端返回该isbn对应图书的信息,例如书名、作者、出版社、简介等。 后端实现的逻辑:读取isbn码,判断是否为空,为空则报错查看数据库是否有与该isbn匹配的图书信息,如果有则直接返回如果没有,则利用豆瓣开发者工具,进行查找,通过对接收到的信息进行解析,并插入到数据库中前两步都没有问题,问...原创 2018-07-03 16:07:46 · 12587 阅读 · 3 评论 -
【JAVA基础】JAVA "==" 和 equals() 的区别 以及 equals() 和 hashcode() 的区别
“==” 跟 equals 函数都是用于比较是否相等的,但在有一定的区别和联系。对于“==”,用来比较两个变量的值是否相等。变量就可以分为基本数据类型和引用类型对于基本数据类型,因为他们本身就是在栈里面直接储存数据,因此,实际上就是比较对应的值是否相等的问题。对于引用类型的变量,它们存储的是地址,(也就是它们指向了哪个存储空间)因此比较的是它们存储的地址是否相同。(即比较对应引用的内存...原创 2018-06-17 00:18:43 · 199 阅读 · 0 评论 -
【JAVA基础】JAVA的拆箱和装箱
java是面向对象的语言,存在的类似于int,long等基础类型,有时候操作起来会不太方便,有时我们需要把基础类型转为包装类,这个过程就是装箱。简单看一下装箱和拆箱的定义:装箱:将基础数据类型(8个)的值封装在对象中拆箱:提取封装类的对象中提取基础数据类型的值举例:// 装箱:Integer number = 100;Integer number1 = Integer.val...原创 2018-06-14 14:48:45 · 414 阅读 · 0 评论