2021
02-21
02-21
解决java main函数中的args数组传值问题
这几天面试中有遇到关于main数组中的args数组传值的问题,一般是从命令提示符中传值,也可以直接在java代码中赋值。而且这个数组的长度是动态的,根据传值的个数确定数组的长度。1.从命令提示符中传值我在桌面新建了一个文本文档重命名为TestMain.java,代码如下publicclassTestMain{publicstaticvoidmain(String[]args){System.out.println("hello"+args[0]);System.out.println("welcome"+args[1]);}...
继续阅读 >
Byte类/包装类包装类是一个常量类,可实例化(意义:帮助对应的数据类型进行数据类型)java数据类型包括内置数据类型和引用数据类型内置数据类型:含6中数字类型(四个整数型,两个浮点型),一种字符类型,还有布尔类型bytebyte:数据类型占用1个字节=8bit,以二进制补码表示的整数取值范围:默认值为0,最小值为-128(-2^7);最大值是127(2^7-1)数据类型关键字内存中占用字节数取值范围...
继承ClassLoader并且重写findClass方法就可以自定义一个类加载器,具体什么是类加载器以及类加载器的加载过程与顺序下次再说,下面给出一个小demo首先定义一个类,比如MyTest,并且将其编译成class文件,然后放到一个指定的文件夹下面,其中文件夹的最后几层就是它的包名,这里我将这个编译好的类放到:/Users/allen/Desktop/cn/lijie/MyTest.classpackagecn.lijie;publicclassMyTest{publicvoidshow(){System.out.p...
main方法args参数用于接收用户输入的参数,参数以字符串形式存放在数组中。这里将传递参数参数的形式分两种,一种是传递普通参数,另一种是传递含有空格的参数。1、传递普通参数publicclassTest{publicstaticvoidmain(String[]args){for(Strings:args){System.out.println(s);}}}main方法接收参数以空格作为参数的分隔符号,第一个参数为“Hello”,第二个参数是“Word”。2、传递含有空格的参数参数既然main方法...
当jvm虚拟机被关闭的时候,可能我们需要做一些处理,比如对连接的关闭,或者对一些必要信息的存储等等操作,这里就可以借助于虚拟机提供的钩子函数,当jvm虚拟机关闭之前会去调用addShutdownHook注册的线程钩子。这里做一个小实验,项目结构如下:1.自定义的ApplicationContext的上下文packagecn.lijie;publicclassApplicationContext{privatestaticApplicationContextapplication;privatevoidinit(){applicatio...
之前使用kafka的KafkaStream,让每个消费者和对应的patition建立对应的流来读取kafka上面的数据,如果comsumer得到数据,那么kafka就会自动去维护该comsumer的offset,例如在获取到kafka的消息后正准备入库(未入库),但是消费者挂了,那么如果让kafka自动去维护offset,它就会认为这条数据已经被消费了,那么会造成数据丢失。但是kafka可以让你自己去手动提交,如果在上面的场景中,那么需要我们手动commit,如果comsumer挂了那...
一、前期基础知识储备sleep()和wait()方法都是Java中造成线程阻塞的方法。感兴趣的读者可以参见笔者之前的文章《Java中什么方法导致线程阻塞》,里面详细讲述了为什么Java要造成线程阻塞和Java中造成线程阻塞的几种方法。(1)线程的生命周期这是笔者在谷歌图片中找到的一张简单描述线程生命周期的图片,可以看到,一个线程正常的生命周期中会经历“创建”“就绪”“运行”“阻塞”“运行”“死亡”等几个生命周期,其中“阻塞”是...
一、为什么引入线程阻塞机制?为了解决对共享存储区的访问冲突,Java引入了同步机制,现在让我们来考察多个线程对共享资源的访问,显然同步机制已经不够了,因为在任意时刻所要求的资源不一定已经准备好了被访问,反过来,同一时刻准备好了的资源也可能不止一个。为了解决这种情况下的访问控制问题,Java引入了对阻塞机制的支持。阻塞指的是暂停一个线程的执行以等待某个条件发生(如某资源就绪),学过操作系统的同学对它一定已...
初次在IDEA使用maven的时候遇到的问题搜索之后得到解决方案idea报错:Error:java不支持发行版本5实际测试后该博主提供的方法可以解决.但是每次创建新项目的时候都要设置一次.这里提供一个一劳永逸的方法在maven地址\conf\setting.xml中设置默认jdk版本…把图中代码添加到…中我使用的是jdk11复制代码时需要修改成自己的jkd版本例如jkd8code:<profile><id>development</id><activation><jdk>1.8</jdk><activeByDefau...
float和double只能用来做科学计算或者是工程计算,在商业计算中我们要用java.math.BigDecimal。而且使用BigDecimal类也可以进行大数的操作。方法类型描述publicBigDecimal(doubleval)构造将double表示形式转换为BigDecimalpublicBigDecimal(intval)构造将int表示形式转换为BigDecimalpublicBigDecimal(Stringval)构...
什么是递归?用Java写一个简单的递归程序递归的定义递归(recursion):以此类推是递归的基本思想,将规模大的问题转化为规模小的问题来解决。递归的要素自定义递归函数,并确定函数的基本功能例如Java从键盘输入一个数,求输入这个数的阶乘。这个时候把输入的数字作为形参intdiGuiTest(intn){}找到递归函数循环结束条件在求阶乘的时候,我们不妨做出如下思考,例如输入的n是5,那么5!是5*43*2*1,那是不是可以写成nf(...