起因 JDK1.4以前类型不明确 装入集合的类型都被当做Object对待,从而失去自己的类型 从集合中取出时往往需要转型,效率低,容易产生错误 解决办法 在定...
Java JDK1.5: 泛型 新特性的讲解说明图片每博一文案听到过这样一句话:“三观没有标准。在乌鸦的世界里,天鹅也有罪。”环境、阅历的不同,造就了每个人独有的世界观、人生观、价值观。...泛型的设计背景集合容器类在设计阶段/声明阶段不能确定这个容器到底实际存的是什么类型的对象,所以在JDK1.5之前只能把元素类型设计为 Object,JDK1.5 之后使用泛型来 解决。...从 JDK1.5 以后,java 引入了 “参数化类型 (Parameterized type)” 的概念,允许我们在创建集合时再指定集合元素的类型,正如: List ,这表明该 List...JDK1.5 改写了集合框架中全部接口和类,为这些接口,类增加了泛型支持,从而可以在声明集合变量,创建集合对象时传入 类型实参。2.
是指将变量的值一一列出来,变量的值只限于列举出来的值的范围内。举例:一周只有7天,一年只有12个月等。
Linux下 安装好了jdk,输入jps时,系统提示“-bash: jps: command not found”。...几经查找,得知jps命令是jdk下bin目录中的一个可执行文件,但发现自己安装的 jre-6u17-linux-i586.bin 里面根本没有, 需要安装jre-6u24-linux-i586.bin...据说在JDK1.5之后的版本里就有了这个jps,但居然在1.6_17中没有。
第一个坑,idea在jdk1.5支持问题 使用Intellij Idea加载ysoserial的代码,将JDK版本更改为1.5,发现idea新版本不支持jdk1.5环境,没法调试代码。...idea11以jdk1.5导入ysoserial后,报一大堆错误,于是将几个必备的依赖jar包替换成较低版本的,以备可以兼容jdk1.5环境。...第3个坑 CC链不适用于JDK1.5 weblogic低版本应该是存在CC链的反序列化漏洞的,本地尝试了各种CC链,发现在JDK1.5下是没法弹计算器的。...发现weblogic9.x成功弹出计算器 Part3总结 Jdk7u21利用链可用于JDK1.5,但是必须以JDK1.5环境编译。 Weblogic9.x默认依赖于JDK1.5。...CC链貌似不能用于JDK1.5。 permit-reflect组件改源码,然后导入ysoserial中,因为官网的jar包版本不支持JDK1.5。
在linux环境下显示一个进程的信息大家可能一直都在使用ps命令,比如用以下命令来显示当前系统执行的java进程: ps -ef | grep java 针对java的进程,jdk1.5以后提供了一个查看当前所有.../bin/目录下面 功能 jps(Java Virtual Machine Process Status Tool)是JDK 1.5提供的一个显示当前所有java进程pid的命令,简单实用,非常适合在linux
JDK1.5之前,我们如果想要使用Java线程来完成相关任务,一般涉及两个类,一个是Thread类,一个Thread对象在启动(start)之后会创建一个关联的本地操作系统线程,随后会自动回调run...因此,在JDK1.5的JUC包中,对Java的多线程应用做了一次全面的扩展,比如新lock锁、并发容器等,还有一个重要的扩展就是出现了Executor执行框架。 ...JDK1.5的时候,出现了Executor线程池。...异步执行结果 JDK1.5之前,在线程任务启动之后,对于线程任务监控几乎没有,我们不知道任务有没有完成,也没办法定义任务的返回值等一系列信息。 ...JDK1.5的时候,出现了Future接口以及它的各种实现。这个接口体系代表了线程任务异步计算的结果,通常与Callable线程任务连用。
Linux 文件系统 目录 说明 bin 存放二进制可执行文件 sbin 存放二进制可执行文件,只有 root 才能访问 boot 存放用于系统引导时使用的各种文件 dev 用于存放设备文件 etc...是超级管理员 localhost 表示主机名 ~ 表示当前目录(家目录),其中超级管理员家目录为 /root,普通用户家目录为 /home/chan $ 表示普通用户提示符,# 表示超级管理员提示符 Linux...test.tar.gz 文件搜索命令 locate:在后台数据库搜索文件 updatedb:更新后台数据库 whereis:搜索系统命令所在位置 which:搜索命令所在路径及别名 find:搜索文件或文件夹 用户和组 Linux
在JDK1.5以下的版本,封装类只能当类来使用,也就是要new出对象才可以使用,但是在JDK1.5以后的版本则可以当做一个数据类型直接使用。...如果在JDK1.5以下的版本直接作为类型使用时就会报语法错误的。例如: ? JDK1.5以下版本: ? 直接作为类型申请就会报语法错误,只能构建对象来进行使用。 JDK1.5以上则两种都可以写: ?
Linux文件操作 Linux中,一切皆文件(网络设备除外)。 硬件设备也“是”文件,通过文件来使用设备。 目录(文件夹)也是一种文件。...boot:这里存放的是启动Linux时使用的一些核心文件,包括一些连接文件和镜像文件。...deb:deb是Device(设备)的缩写,该目录下存放的是Linux的外部设备,在Linux中访问设备的方式和访问文件的方式是相同的。...系统会自动识别一些设备,例如U盘、光驱等,当识别后,Linux会把识别的设备挂载到这个目录下。...---- Linux文件的操作方式 文件描述符fd fd是一个大于等于0的整数。 每打开一个文件,就创建一个文件描述符,通过文件描述符来操作文件。
自动拆箱、装箱是从JDK1.5开始才有的特性,其实它主要就是指基本类型与包装类的自动转换。 如int 与Integer类型。...int 是基本类型,而Integer是int的包装类,在JDK1.5之前,int类型的值是不能直接赋给Integer类型的值 的,也就是说 Integer integer = 5; 会报错,因为5是基本类型...所以在JDK1.5开始,它们之间的转换不在须要程序员再去进行转换了,JDK已经将它自动进行了转换,这种操作就叫自动拆箱、装箱。...int i = 5; Integer ii = i; //这种写法在JDK1.5及以后的版本是正确的,因为系统会自动将int向Integer进行转换,这种操作就叫自动装箱。
生产环境JDK版本确认,直接在Linux下执行该命令就能看对应.class 16进制文件内容。 hexdump MiscUtil.class | less 3....详细的JDK版本对应关系: 34(对应十进制的50):JDK1.8 33(对应十进制的50):JDK1.7 32(对应十进制的50):JDK1.6 31(对应十进制的49):JDK1.5 30
注意,前面反复提到 “从语义上讲是没有问题的”,但是很不幸,禁止指令重排优化这条语义直到 jdk1.5 以后才能正确工作。...所以,在 jdk1.5 版本前,双重检查锁形式的单例模式是无法保证线程安全的。 静态内部类法 那么,有没有一种延时加载,并且能保证线程安全的简单写法呢?...再比如双重检查锁法,不能在 jdk1.5 之前使用,而在 Android 平台上使用就比较放心了(一般 Android 都是 jdk1.6 以上了,不仅修正了 volatile 的语义问题,还加入了不少锁优化...Effective Java(第二版)》 《深入理解 Java 虚拟机——JVM 高级特性与最佳实践(第二版)》 微信搜索:【Java小咖秀】更多精彩等着您~ 回复手册获取博主15万字Java面试通关手册&2万字Linux
LInux平台下是配置.bash_profile这个文件用vi或者nano,只要你喜欢的无格式文本编辑器打开就好: PATH=....$PATH:$HOME/bin:/home/yunwsj/Java/jdk-11.0.1/bin Linux和win有点不一样,多个路径以:做分隔符.$PATH用来引用原有的PATH变量值....其实jdk1.5以上,完全不用这个东西。 那到底是什么。java java类名。运行这个东西的时候,java类是哪里找的?你可能会说,当前路径。是,没错,但是你是直觉回答。
前言 之前发布了关于java开发环境配置的文章,经过与网友的交流,我了解到在jdk1.5以后,java开发环境配置的时候,确实不需要对classpath进行配置,但市面上的书籍,以及一些博客、还是老一套...在JDK1.5以后,classpath并不是必须配置了,在JDK1.5之前,是没有办法在当前目录下加载类的(找不到 JDK目录下lib文件夹中的.jar文件),所以我们需要通过配置classpath,但...JDK1.5之后,JRE能自动搜索目录下类文件,并且加载dt.jar和tool.jar的类。...总结: 在JDK1.5之后的版本,配置Java环境变量的时候我们不再需要配置classpath,只需要配置Java_Home以及path即可!
如果文章对你有点帮助,小伙伴们点赞,收藏,评论,分享,走起呀~~ 其实,在JDK1.5之前的线程安全的容器,大多数都是指同步容器,使用同步容器进行并发编程时,最大的问题就是性能很差。...所以,在JDK1.5之后,JDK中提供了并发性能更好的容器。JDK1.5及之后的版本中,提供的线程安全的容器,一般被称为并发容器。...总结 今天我们主要介绍了JDK1.5之后提供的并发容器,主要包括:List、Set、Map和Queue,而Queue又可以分为:单端阻塞队列、双端阻塞队列、单端非阻塞队列和双端非阻塞队列。...《全网最全Linux命令总结!!(史上最全,建议收藏)》 《用Python写了个工具,完美激活成功教程了MySQL!!(建议收藏)》 《SimpleDateFormat类到底为啥不是线程安全的?
一、Linux下的用户分类 在Linux下,有两种用户,一种是超级用户,一种是普通用户 超级用户:可以再linux系统下做任何事情,不受权限限制(制定规则,但不需要遵守规则) 普通用户:在linux...2、Linux中的所有用户都要有自己的密码,无论是root还是普通用户,并且root的密码和普通用户的密码尽量不要一样!!...二、Linux权限的概念 什么叫做权限呢??通俗一点说就是一件事情是否允许你做! ...后缀无意义但需要 Linux系统中,文件名后缀没有没有直接的意义。 ...所以Linux中的文件是否需要使用后缀,具体看用户的需求!!
---- O_SYNC 缓存同步 为了保证磁盘系统与缓冲区内容一致,Linux系统提供了sync,fsync,fdatasync三个函数。...---- Linux文件IO流程图 内核中会有一个线程,不断地将高速页缓冲区中的数据写入到物理磁盘中。
相信很多在linux平台工作的童鞋, 都很熟悉管道符 '|', 通过它, 我们能够很灵活的将几种不同的命令协同起来完成一件任务.就好像下面的命令: echo 123 | awk '{print $0+123...EAGAIN 如果所有管道写端对应的文件描述符被关闭,则read返回0 如果所有管道读端对应的文件描述符被关闭,则write操作会产生信号SIGPIPE 当要写入的数据量不大于PIPE_BUF时,linux...当要写入的数据量大于PIPE_BUF时,linux将不再保证写入的原子性。
在 Linux 系统中,网络配置是非常重要的,它涉及到网络接口、IP 地址、子网掩码、网关、DNS 等多个方面。...本文将介绍如何在 Linux 系统中配置网络,包括设置静态 IP 地址、修改主机名、配置 DNS 服务器等内容。...查看网络接口在 Linux 系统中,可以使用 ifconfig 命令来查看当前系统的网络接口信息。...其它的内容这里先暂且不讲,这里先继续根据 在 windows 上搭建一台 Linux,这篇文章的内容来继续写,在这篇文章中,已经将系统搭建完成了,这篇文章主要就是调通网络。...这么一来,我们的网络就配置好了,然后我们可以在 Linux 系统中访问外部网络了。