
java基础
码虫甲
这个作者很懒,什么都没留下…
展开
-
java.lang.UnsupportedOperationException错误
案例:执行如下代码报错:Exception in thread "main" java.lang.UnsupportedOperationExceptionpublic class TestList { public static void main(String[] args) { String[] array = {"1","2","3","4","5"};...原创 2020-01-09 16:32:20 · 310 阅读 · 0 评论 -
4 个关于Java 虚拟机内存的问题
1)JVM的内存区域是怎么划分的2)OOM可能发生在哪些区域上3)堆内存结构是怎么样的4)常用的性能监控与问题定位工具有哪些JVM的内存区域是怎么划分的?JVM的内存划分中,有部分区域是线程私有的,有部分是属于整个JVM进程;有些区域会抛出OOM异常,有些则不会,了解JVM的内存区域划分以及特征,是定位线上内存问题的基础。那么JVM内存区域是怎么划分的呢?首先是程序计数器(...原创 2019-11-18 13:59:38 · 200 阅读 · 0 评论 -
java中Date类型比较大小
方法一:java.util.Date类实现了Comparable接口,可以直接调用Date的compareTo()方法来比较大小String beginTime = "2019-07-28 14:42:32";String endTime = "2019-07-29 12:26:32";SimpleDateFormat format = new SimpleDateFormat("y...原创 2019-10-21 14:20:29 · 2157 阅读 · 0 评论 -
java对象的初始化方式
1.new时初始化 ;2.静态工厂 newInstance;3.反射Class.forName();4.clone方式;5.反序列化;原创 2018-07-29 16:55:05 · 1780 阅读 · 0 评论 -
Java IO
//贴一篇详细的总结https://www.cnblogs.com/ylspace/p/8128112.htmlJava的IO系统是以字节流和字符流为基类派生出来的体系字节流:InputStreamOutputStream字符流:Reader:Writer:文件流:FileInputStream/FileOutputStream, FileReade...原创 2018-08-10 17:48:02 · 137 阅读 · 0 评论 -
Java中的异常
1. 粉红色的是受检查的异常(checked exceptions),其必须被 try{}catch语句块所捕获,或者在方法签名里通过throws子句声明.受检查的异常必须在编译时被捕捉处理,命名为 Checked Exception 是因为Java编译器要进行检查,Java虚拟机也要进行检查,以确保这个规则得到遵守.2. 绿色的异常是运行时异常(runtime exceptions),需要程...原创 2018-08-07 21:19:41 · 112 阅读 · 0 评论 -
管道通信
主要有以下几种类型:①普通管道(PIPE):通常有两种限制,一是单工,即只能单向传输;二是血缘,即常用于父子进程间(或有血缘关系的进程间)。②流管道(s_pipe):去除了上述的第一种限制,实现了双向传输。③命名管道(name_pipe):去除了上述的第二种限制,实现了无血缘关系的不同进程间通信。显然,要求是对于不同的服务器之间的通信,是要要求全双工形式的,而管道只能是半双工,虽然...原创 2018-08-08 20:33:47 · 1791 阅读 · 0 评论 -
接口和抽象类的对比
一 抽象类抽象类[public] absrtact class classname {}关于抽象方法:抽象方法是一种特殊的方法,只有声明没有实现。抽象方法必须用abstract关键字进行修饰。如果一个类含有抽象方法,则称这个类为抽象类,抽象类必须在类前用abstract关键字修饰。因为抽象类中含有无具体实现的方法,所以不能用抽象类创建对象。absrtact void fu...原创 2018-08-24 09:45:08 · 230 阅读 · 0 评论 -
win10下编译OpenJDK8
//转载http://www.cnblogs.com/lighten/p/5906359.html 1. 编译环境的准备 1.1 JDK源码下载 OpenJDK是JAVA发展史中的一个开源项目,本文以OpenJDK8为例进行编译。OpenJDK的官网为:http://openjdk.java.net/,直接访问http://openjdk.java.net/install/...转载 2018-08-29 16:50:48 · 5152 阅读 · 2 评论 -
Cannot find firefox binary in PATH. Make sure firefox is installed.
使用selenium报找不到浏览器安装路径错误解决办法如下:1.重新安装firefox在默认路径下; OS Expected Location of Firefox Linux firefox (found using "which") Mac /Applications/Firefox.app/Contents/MacOS/firefox Windows...原创 2018-09-04 22:23:08 · 2396 阅读 · 0 评论 -
JVM内存配置参数
对于JVM内存配置参数:-Xmx10240m -Xms10240m -Xmn5120m -XXSurvivorRatio=3,其最小内存值和Survivor区总大小分别是()正确答案: D 你的答案: C (错误)5120m,1024m5120m,2048m10240m,1024m10240m,2048m-Xmx10240m:代表最大堆 -Xms10240m:代表最小堆 -Xmn5120m:代...原创 2018-07-04 21:58:21 · 242 阅读 · 0 评论 -
spring事务的属性
事务属性的种类: 传播行为、隔离级别、只读和事务超时 a) 传播行为定义了被调用方法的事务边界。 传播行为意义PROPERGATION_MANDATORY表示方法必须运行在一个事务中,如果当前事务不存在,就抛出异常PROPAGATION_NESTED表示如果当前事务存在,则方法应该运行在一个嵌套事务中。否则,它看起来和PROPAGATION_REQUIRED 看起来没什么俩样PROPAG...转载 2018-07-04 21:47:57 · 94 阅读 · 0 评论 -
关于throw与throws
throw与throws的比较1、throws出现在方法函数头;而throw出现在函数体。2、throws表示出现异常的一种可能性,并不一定会发生这些异常;throw则是抛出了异常,执行throw则一定抛出了某种异常对象。3、两者都是消极处理异常的方式,只是抛出或者可能抛出异常,但是不会由函数去处理异常,真正的处理异常由函数的上层调用处理。编程习惯:1.在写程序时,对可能会出现异常的部分通常要用t...原创 2018-06-10 13:19:38 · 498 阅读 · 0 评论 -
深入理解Java虚拟机 精华总结(面试)
一.运行时数据区域 Java虚拟机管理的内存包括几个运行时数据内存:方法区、虚拟机栈、堆、本地方法栈、程序计数器,其中方法区和堆是由线程共享的数据区,其他几个是线程隔离的数据区。 1.1程序计数器 程序计数器是一块较小的内存,他可以看做是当前线程所执行的行号指示器。字节码解释器工作的时候就是通过改变这个计数器的值来选取下一条需要执行的字节码的指令,分支、循环、跳转、异常处理、线程恢复等...转载 2018-06-19 20:24:58 · 181 阅读 · 0 评论 -
关于java虚拟机JVM
1. JVM生命周期启动。启动一个Java程序时,一个JVM实例就产生了,任何一个拥有public static void main(String[] args)函数的class都可以作为JVM实例运行的起点。运行。main()作为该程序初始线程的起点,任何其他线程均由该线程启动。消亡。当程序中的所有非守护线程都终止时,JVM才退出;若安全管理器允许,程序也可以使用Runtime类或者System...转载 2018-06-19 20:37:00 · 124 阅读 · 0 评论 -
前台线程和后台线程的区别和联系
main()函数即主函数,是一个前台线程,前台进程是程序中必须执行完成的,而后台线程则是java中所有前台结束后结束,不管有没有完成,后台线程主要用与内存分配等方面。 前台线程和后台线程的区别和联系:1、后台线程不会阻...原创 2018-07-08 20:12:59 · 2267 阅读 · 0 评论 -
牛客一道题
What results from the following code fragment?123int i =5;int j =10;System.out.println(i + ~j);正确答案: C 你的答案: D(错误)Compilation error because”~”doesn’t operate on integers-5-615计算机本身储存的就是补码:那么10的补码...原创 2018-07-02 23:05:31 · 486 阅读 · 0 评论 -
java实例变量,局部变量,final变量,类变量
实例变量:只有在实例化对象后才可以使用,变量归对象所有。每当实例化一个对象时,总会创建一个副本并初始化,如果没有进行显式的初始化,则会初始化一个默认值。各个实例化对象的副本之间互相独立,之间没有耦合。局部变量:定义在方法中,使用之前必须进行初始化,且生命周期仅仅在该方法中有效。final变量:使用static final 修饰,表示该变量为常量,显示初始化之后不可以被修改,类似于C++里面的全局变...原创 2018-07-09 19:00:01 · 462 阅读 · 0 评论 -
关于java泛型
泛型,即“参数化类型”。一提到参数,最熟悉的就是定义方法时有形参,然后调用此方法时传递实参。那么参数化类型怎么理解呢?顾名思义,就是将类型由原来的具体的类型参数化,类似于方法中的变量参数,此时类型也定义成参数形式(可以称之为类型形参),然后在使用/调用时传入具体的类型(类型实参)。一. 泛型概念的提出(为什么需要泛型)?首先,我们看下下面这段简短的代码: 1 public...原创 2018-06-27 20:29:25 · 106 阅读 · 0 评论 -
&/&&和|/||
与操作:左右两边必须同时为真才能取真或操作:左右两边有一个为真则结果为真& 左右两边都必须执行,即前面已经为假了,但是后面的还是会执行最终为假&& 短语与 如果前面为假,则后面不用执行了 结果为假| 前面为真的情况下还是继续执行后面的条件,最终返回真|| 短路或 前面为真则后面不用继续执行了...原创 2018-07-16 19:45:31 · 951 阅读 · 0 评论 -
java的堆内存和栈内存比较
java把内存分成两种,一种叫做栈内存,一种叫做堆内存。在函数中定义的一些基本类型的变量和对象的引用变量都是在函数的栈内存中分配。当在一段代码块中定义一个变量时,java就在栈中为这个变量分配内存空间,当超过变量的作用域后,java会自动释放掉为该变量分配的内存空间,该内存空间可以立刻被另作他用。堆内存用于存放由new创建的对象和数组。在堆中分配的内存,由java虚拟机自动垃圾回收器来管理。在堆中...原创 2018-07-03 19:23:49 · 121 阅读 · 0 评论 -
关于java异常
都是Throwable的子类: 1.Exception(异常) :是程序本身可以处理的异常。 2.Error(错误): 是程序无法处理的错误。这些错误表示故障发生于虚拟机自身、或者发生在虚拟机试图执行应用时,一般不需要程序处理。3.检查异常(编译器要求必须处置的异常) : 除了Error,RuntimeException及其子类以外,其他的Exception类及其子类都属于可查异常。这种异常的特...转载 2018-07-03 19:31:29 · 117 阅读 · 0 评论 -
java线程状态
一. 线程状态类型1. 新建状态(New):新创建了一个线程对象。2. 就绪状态(Runnable):线程对象创建后,其他线程调用了该对象的start()方法。该状态的线程位于可运行线程池中,变得可运行,等待获取CPU的使用权。3. 运行状态(Running):就绪状态的线程获取了CPU,执行程序代码。4. 阻塞状态(Blocked):阻塞状态是线程因为某种原因放弃CPU使用权,暂时停止运行。直到...原创 2018-06-28 15:47:04 · 97 阅读 · 0 评论 -
java中方法重载和方法重写
方法重写的前提: 必须要存在继承的关系。方法的重写: 子父类出了同名的函数,这个我们就称作为方法的重写。什么是时候要使用方法的重写:父类的功能无法满足子类的需求时。方法重写要注意的事项: 1.方法重写时, 方法名与形参列表必须一致。 2.方法重写时,子类的权限修饰符必须要大于或者等于父类的权限修饰符。 3.方法重写时,子类的返回值类型必须要小于或者 等于父类的返回值类型。 ...原创 2018-07-04 21:37:01 · 155 阅读 · 0 评论 -
关于Java虚拟机,jdk与jre还有static
Java虚拟机是一个可以执行字节码文件的虚拟机进程,java源文件被编译成能被java虚拟机执行的字节码文件,因此java虚拟机使得java具有了跨平台性。jdk:java开发工具包,是完整的Java软件开发包,包含了JRE,编译器和其他的工具(比如:JavaDoc,Java调试器),可以让开发者开发、编译、执行Java应用程序。jre:Java运行时环境,是将要执行Java程序的Java虚拟机。...原创 2018-06-10 16:57:50 · 385 阅读 · 0 评论