![](https://img-blog.csdnimg.cn/20200529163316835.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Java基础
jdk使用过程中遇到的问题以及注意事项
一岁不枯荣
爱学习技术,爱运动的java小白
展开
-
Java学习过程中要注意的细节
1 java 发展历史1995年Sun公司发布Java1.0版本2004年发布Java1.5版本2014年发布Java1.8版本2 字节字节是我们常见的计算机中最小存储单元8个bit(二进制位)0000-0000表示为1个字节,写成1byte或者1B。8bit=1B1024B=1KB1024KB=1MB1024MB=1GB1024GB=1TB3 标识符概念:我们自己定义的内容命名规则:硬性要求标识符可以包含英文字母26个(区分大小写)、0-9数字、$(美元符号)和_(下划线)。原创 2020-12-21 11:27:55 · 74 阅读 · 1 评论 -
Java中的注解
一 注解的概念JDK1.5之后的新特性说明程序的使用注解:@注解名称二 注解的作用编写文档:通过代码里标识的注解生成文档【生成文档doc文档】假设,我们需要在targetdocdir放置我们生成的文档,需要对c:jproject里的cn.com.linuxaid包内的源文件建立程序文档。那么我们需要进入c:jprojectcncom(也就是包含了overview.html的目录——假如你提供了它的话)。然后运行 javadoc -d targetdocdir cn.com.linuxaid原创 2020-12-23 15:26:09 · 70 阅读 · 0 评论 -
类加载器以及反射
1 站位原创 2020-12-22 18:40:11 · 84 阅读 · 0 评论 -
JDK新特性
JDK新特性1. jshell脚本2. 接口上的改变3. 对于集合的添加优化of方法4. Lambda表达式(1.8开始)4.1 编程思想的转换4.2 Lambda标准格式4.3 Lambda的使用前提4.4 Lambda的省略格式4.5 Lambda的延迟执行5 函数式接口5.1 概念5.2 常用的函数接口5.2.1 Supplier接口5.2.2 Consumer接口5.2.3 Predicate接口5.2.4 Function接口6.Stream流(JDK1.8加入)6.1 流思想的概念6.2 Str原创 2020-12-21 11:27:26 · 371 阅读 · 2 评论 -
网络编程
1 软件架构C/S结构 :全称为Client/Server结构,是指客户端和服务器结构。常见程序有QQ、迅雷等软件。B/S结构 :全称为Browser/Server结构,是指浏览器和服务器结构。常见浏览器有谷歌、火狐等。2 网络通信协议网络通信协议:通信协议是对计算机必须遵守的规则,只有遵守这些规则,计算机之间才能进行通信。这就好比在道路中行驶的汽车一定要遵守交通规则一样,协议中对数据的传输格式、传输速率、传输步骤等做了统一规定,通信双方必须同时遵守,最终完成数据交换。TCP/IP协议:原创 2020-12-18 15:06:57 · 216 阅读 · 0 评论 -
字符集和编码
1 字符编码计算机中储存的信息都是用二进制数表示的,而我们在屏幕上看到的数字、英文、标点符号、汉字等字符是二进制数转换之后的结果。按照某种规则,将字符存储到计算机中,称为编码 。反之,将存储在计算机中的二进制数按照某种规则解析显示出来,称为解码 。比如说,按照A规则存储,同样按照A规则解析,那么就能显示正确的文本f符号。反之,按照A规则存储,再按照B规则解析,就会导致乱码现象。· 字符编码 Character Encoding : 就是一套自然语言的字符与二进制数之间的对应规则。2 字符集字符原创 2020-12-18 15:01:44 · 126 阅读 · 0 评论 -
IO流相关
1 字节流FIleOutputStream:文件输出流,会创建一个指定的空文件,把流指向文件,java->jvm->找os(操作系统)->调用os方法写数据。FileInputStream:文件输入流,从磁盘中读取文件数据,使用read()方法每次读取一个字节,当读不到的时候返回-1,如果使用使用read(byte[] byte)读取,每次会读取多个字节返回的是读取到有效的字节个数,读不到的时候也会返回-1,但是缓冲区中只会覆盖掉重新读取的数据,如果没有新的则不覆盖,提高效率。原创 2020-12-18 15:00:04 · 53 阅读 · 0 评论 -
File类
1 概念java.io.File 类是文件和目录路径名的抽象表示,主要用于文件和目录的创建、查找和删除等操作。2 File类常用的方法2.1 静态常量static String pathSeparator:与系统有关的路径分隔符,为了方便,它被表示为一个字符串。static char pathSeparatorChar :与系统有关的路径分隔符。static String separator :与系统有关的默认名称分隔符,为了方便,它被表示为一个字符串。static char separato原创 2020-12-18 14:57:18 · 179 阅读 · 1 评论 -
多线程相关
1 多线程内存图解2 Thread类构造方法:publicThread():分配一个新的线程对象。publicThread(Stringname):分配一个指定名字的新的线程对象。publicThread(Runnabletarget):分配一个带有指定目标新的线程对象。publicThread(Runnabletarget,Stringname):分配一个带有指定目标新的线程对象并指定名字。常用方法:publicString getName():获取当前线程名称。publicvoid原创 2020-12-18 14:54:26 · 50 阅读 · 0 评论 -
异常及其处理
1 异常的分类2 异常产生过程解析3 如何处理异常throw:在方法中抛出指定的异常。throws:声明异常。try…catch…:捕获异常,自己写处理方案finally:常和try…catch连用,表示最终会执行到Throwable中的三个方法String getMessage():获取简短的信息String toString():获取详细的信息void printStackTrace():JVM打印异常对象,默认是此方法,最全面的String getStackTrace(原创 2020-12-18 14:50:25 · 78 阅读 · 0 评论 -
Map集合
1 集合常用类图2 集合中常用的方法3 map中键的说明作为键使用的数据类型,不管是什么数据类型,只有重写了hashCode和equal方法,才能保证map中的key唯一(自定义类型保证自定义类型中的内容唯一)。...原创 2020-12-18 14:48:58 · 54 阅读 · 0 评论 -
Collection集合相关
2.1 集合的结构HashSet实现自定义类型内容不重复的原理:先比较hashCode,再比较equals,两者其一不相同才认定不是同一个。存储自定义类型时,要保证唯一元素,需要重写hashCode和equals方法(根据实际情况决定)。2.1.1 多线程使用集合a List的选择:ArrayList不是线程安全的集合。b Vector太过于笨重性能低下.c new CopyOnWriteArrayList()也会频繁创建数组.d List objects = Collections.sync原创 2020-12-18 14:46:00 · 63 阅读 · 0 评论 -
String,StringBuffer和StringBuilder
1、三者的区别和联系StringStringBufferStringBuilderString的值是不可变的,这就导致每次对String的操作都会生成新的String对象,不仅效率低下,而且浪费大量优先的内存空间StringBuffer是可变类,和线程安全的字符串操作类,任何对它指向的字符串的操作都不会产生新的对象。每个StringBuffer对象都有一定的缓冲区容量,当字符串大小没有超过容量时,不会分配新的容量,当字符串大小超过容量时,会自动增加容量可变类,速度更快不可变原创 2020-12-18 14:41:51 · 41 阅读 · 0 评论 -
乐观锁和悲观锁简单理解
乐观锁理解:凡事都朝着好的方面想,总是认为不会产生并发问题,每次去取数据的时候总认为不会有其他线程对数据进行修改。控制方式:版本号控制或者CAS算法版本号控制例如:数据库中有一个字段为version1,当线程A操作此字段,将其变成了version2,并且进行提交,那么同时线程B也拿到了version1,当线程B提交的时候发现version1已经改变了,提交就会被驳回,然后重新尝试,直到拿到的版本和要提交的版本是同一个的时候才会提交成功。CAS算法(compare and swap)数.原创 2020-07-10 18:28:22 · 72 阅读 · 0 评论 -
JDK动态代理文件$Proxy0.class的生成和查看
网上讲了好多种方法,但经过测试,都不太中意,下面结合自己的实践给大家介绍一下JDK动态代理文件如何生成和查看背景条件idea中JDK动态代理文件的生成和查看demo介绍JDK动态代理文件的生成有两个条件:1、必须在main方法中执行,直接用junit的test方法调用无法生成2、在main方法最前面增加System.getProperties().put(“sun.misc.ProxyGenerator.saveGeneratedFiles”,“true”); 配置,这样会输出代理class文件转载 2020-07-09 11:49:20 · 1214 阅读 · 1 评论 -
Java基础细节
Java基础1、java 发展历史2、字节3、标识符4、常量分类5、变量6、类型转换7、运算符8、选择结构swtich9、方法10、数组11、java中的内存区域划分12、类与对象13、String类14、static关键字15、基本数据类型和包装类16、继承和抽象类17、接口18、final,权限以及内部类1、java 发展历史 1995年Sun公司发布Java1.0版本。 2004年发布Java1.5版本。 2014年发布Java1.8版本。 这几个版本都是变动比较大的版本。2、字节原创 2020-12-18 14:35:44 · 103 阅读 · 0 评论 -
SimpleDateFormat导致的线程不安全的问题以及解决办法
想必大家对SimpleDateFormat并不陌生。SimpleDateFormat 是 Java 中一个非常常用的类,该类用来对日期字符串进行解析和格式化输出,但如果使用不小心会导致非常微妙和难以调试的问题,因为 DateFormat 和 SimpleDateFormat 类不都是线程安全的,在多线程环境下调用 format() 和 parse() 方法应该使用同步代码来避免问题。下面我们通过一个具体的场景来一步步的深入学习和理解SimpleDateFormat类。一.引子 我们都是优秀的程序员,我转载 2020-08-11 10:49:41 · 734 阅读 · 0 评论