JAVA
文章平均质量分 50
五山口老法师
腾讯后台开发工程师
展开
-
同域名下不同端口cookie问题
假如同域名 不同端口部署两个服务:服务A 服务B服务A产生的cookie在访问B时会携带,反之同理。为了避免两个服务cookie覆盖,最好对cookie的键取不同的名称加以区分。相同域名不同端口的两个应用,cookie名字、路径都相同的情况下,后面的cookie会覆盖前面的cookie吗?如果浏览器访问的服务是ip或localhost的话,会覆盖;如果浏览器访问的是域名(在...原创 2020-02-29 01:12:01 · 4668 阅读 · 0 评论 -
Java:main()函数调用类中方法的限制
1、在本类中调用自己的方法,方法必须为静态的,否则报错;通过递归方法,实现N!的算法。 public class TestRecursion { public static void main(String[] args) { System.out.println(recursion(4)); //编辑器自动提示:Cannot make a static reference ...原创 2018-12-27 17:24:56 · 1685 阅读 · 0 评论 -
JAVA: final 修饰符
final 修饰符final 变量:final 表示"最后的、最终的"含义,变量一旦赋值后,不能被重新赋值。被 final 修饰的实例变量必须显式指定初始值。final 修饰符通常和 static 修饰符一起使用来创建类常量。实例public class Test{ final int value = 10; // 下面是声明常量的实例 public static final ...原创 2019-01-03 20:55:56 · 175 阅读 · 0 评论 -
Java:Random.nextInt()
public int nextInt(int n)该方法的作用是生成一个随机的int值,该值介于[0,n)的区间,也就是0到n之间的随机int值,包含0而不包含n。原创 2019-01-23 22:42:14 · 363 阅读 · 0 评论 -
JNI : Java程序调用C方法
1、新建一个Java类名称为:TestJavaCallC2、在类中添加如下代码: package Test;public class TestJavaCallC { public native void sayHello(); public static void main(String[] args){ System.loadLibrary("Na...原创 2019-01-10 00:25:20 · 257 阅读 · 0 评论 -
Java基础看这一篇就够了
一、基础知识:1、JVM、JRE和JDK的区别:JVM(Java Virtual Machine):java虚拟机,用于保证java的跨平台的特性。java语言是跨平台,jvm不是跨平台的。JRE(Java Runtime Environment):java的运行环境,包括jvm+java的核心类库。JDK(Java Development Kit):java的开发工具,包括jre+开发...原创 2019-02-24 20:20:51 · 439 阅读 · 0 评论 -
Java面向对象基础整理
面向过程与面向对象的区别:面向对象,将跟对象有关的功能都封装在其内面向对象三大特征:封装,继承,多态找对象,创建对象,使用对象,并维护对象之间的关系类:对现实中事物的描述对象:就是实实在在 存在的事物映射到java中,描述就是class定义的类具体对象就是对应java在堆内存中new建立的实体类与对象:设计图纸就是类,里面包含对象的描述:比如说车的颜色,轮胎...原创 2019-02-24 20:22:36 · 142 阅读 · 0 评论 -
equal、hashcode、==
1、==java中的数据类型,可分为两类:1.基本数据类型,也称原始数据类型byte,short,char,int,long,float,double,boolean 他们之间 的比较,应用双等号(==),比较的是他们的值。 2.引用类型(类、接口、数组) 当他们用(==)进行比较的时候,比较的是他们在内存中的存放地址,所以,除非是同一个new出来的对象,他们的...原创 2019-02-25 22:29:51 · 307 阅读 · 0 评论 -
数学计算表达式的字符串(“3+2+4+5”)得出结果返回Integer
package demo1;import javax.script.ScriptEngine;import javax.script.ScriptEngineManager;import java.util.Scanner;public class demo1 { public static void main(String args[]) throws Excep...原创 2019-03-09 15:59:22 · 733 阅读 · 0 评论 -
Java中的深浅拷贝
1、什么是深拷贝、什么是浅拷贝浅拷贝:浅拷贝不会生成新的对象,只会在原对象上增加了一个新的对象引用,两个引用指向的对象是同一个;深拷贝:深拷贝是重新生成一个新的对象,然后把原来对象的值拷贝到新对象的一个过程,新的对象和原来的对象是没有任何关系的。2、浅拷贝场景:java 对象默认的对象拷贝方式都为浅拷贝,下面我们来看一下我们程序里面常见的例子:(...原创 2019-03-06 23:33:16 · 206 阅读 · 0 评论 -
多个线程同时运行,顺序打印问题
输入一串字符串;开启三个线程;分别在输入的字符串后面打印 "_A" "_B" "_C" 输出结果。输入:hello输出:hello_A_B_C思路:使用Callable 可以返回对应的打印,再在原字符串的基础上拼接。1)使用join2)使用线程池里的SingleThreadPool第一种方法:import java.util.Scanner;impor...原创 2019-03-27 09:47:28 · 935 阅读 · 0 评论 -
java返回图片到页面
@RequestMapping(value = "/image/get") public void getImage(HttpServletRequest request,HttpServletResponse response) { FileInputStream fis = null; response.setContentType("image/gif...原创 2019-05-16 13:27:57 · 4713 阅读 · 2 评论 -
枚举类能继承吗?能被继承吗?
枚举的作用:限定“数据集”中的元素的个数(将类理解为一个集合)、即限定枚举类对象的个数。如果一个类的实例是有限且确定的,那么可以使用枚举类。比如:季节类,只有春夏秋冬四个实例。枚举类与普通类的区别:1.枚举类也是类,也可以有自己的成员变量,成员方法,静态方法、静态变量等,也能实现其他的接口,不能继承其他类了(因为已经继承了java.lang.Enum)。枚举类的对象默认都是public...原创 2019-07-19 00:38:25 · 14906 阅读 · 0 评论 -
接口与抽象类的比较
接口的所有方法都是抽象方法,成员变量都是static final 类型的。只要包含的一个方法被声明为抽象的类,那么这个类必须被声明为抽象类,抽象类不能被实例化。抽象类的子类除非也是也是抽象类,否则必须实现父类中所有的抽象方法。抽象类可以对抽象方法给出方法体的具体实现,但是接口不能。抽象类中的抽象方法不能使用 static \ private \ native \ synchronized等...原创 2019-08-03 09:36:23 · 195 阅读 · 0 评论 -
java:面试
常用java面试题推荐(网址):Java面试题上篇https://blog.csdn.net/jackfrued/article/details/44921941Java面试题中篇https://blog.csdn.net/jackfrued/article/details/44931137Java面试题下篇 https://blog.csdn.net/jackfrued/article/...原创 2018-12-26 14:23:45 · 224 阅读 · 0 评论 -
int和Integer的区别
int和Integer的区别1、Integer是int的包装类,int则是java的一种基本数据类型 2、Integer变量必须实例化后才能使用,而int变量不需要 3、Integer实际是对象的引用,当new一个Integer时,实际上是生成一个指针指向此对象;而int则是直接存储数据值 4、Integer的默认值是null,int的默认值是0延伸: 关于Integer和int的...原创 2018-12-14 17:52:21 · 215 阅读 · 0 评论 -
Java:自定义异常处理类
注意几个注解:@ControllerAdvice @ExceptionHandler @ResponseBodypackage com.sayhello.sayhello.Handle;import com.sayhello.sayhello.Exception.GirlException;import com.sayhello.sayhello.Utils.Resul...原创 2018-12-01 01:31:03 · 229 阅读 · 0 评论 -
1.java局部变量 & 实例变量 & 类变量(静态变量)
局部变量局部变量声明在方法、构造方法或者语句块中; 局部变量在方法、构造方法、或者语句块被执行的时候创建,当它们执行完成后,变量将会被销毁; 访问修饰符不能用于局部变量; 局部变量只在声明它的方法、构造方法或者语句块中可见; 局部变量是在栈上分配的。 局部变量没有默认值,所以局部变量被声明后,必须经过初始化,才可以使用。(C++也是这样)实例变量实例变量声明在一个类中,但在方...原创 2018-10-31 10:50:26 · 208 阅读 · 0 评论 -
2.短路逻辑运算符
短路逻辑运算符当使用与逻辑运算符时,在两个操作数都为true时,结果才为true,但是当得到第一个操作为false时,其结果就必定是false,这时候就不会再判断第二个操作了。实例public class LuoJi{ public static void main(String[] args){ int a = 5;//定义一个变量;boolean b = (a<4...原创 2018-10-31 11:49:17 · 302 阅读 · 0 评论 -
3.JAVA中的多态
方法的重写规则参数列表必须完全与被重写方法的相同; 返回类型必须完全与被重写方法的返回类型相同; 访问权限不能比父类中被重写的方法的访问权限更低。例如:如果父类的一个方法被声明为public,那么在子类中重写该方法就不能声明为protected。 父类的成员方法只能被它的子类重写。 声明为final的方法不能被重写。 声明为static的方法不能被重写,但是能够被再次声明。 子类和...原创 2018-11-01 18:02:55 · 139 阅读 · 0 评论 -
4.java接口
一个实现接口的类,必须实现接口内所描述的所有方法,否则就必须声明为抽象类。接口与类相似点:一个接口可以有多个方法。 接口文件保存在 .java 结尾的文件中,文件名使用接口名。 接口的字节码文件保存在 .class 结尾的文件中。 接口相应的字节码文件必须在与包名称相匹配的目录结构中。接口与类的区别:接口不能用于实例化对象。 接口没有构造方法。 接口中所有的方法必须是抽象方...原创 2018-11-01 20:03:25 · 170 阅读 · 0 评论 -
5.java中的包
其实Java中的包机制就相当于C++中的命名空间的作用!Java 使用包(package)这种机制是为了防止命名冲突,访问控制,提供搜索和定位类(class)、接口、枚举(enumerations)和注释(annotation)等。package(包) 的作用是把不同的 java 程序分类保存,更方便的被其他 java 程序调用。通常使用小写的字母来命名避免与类、接口名字的冲突。一...原创 2018-11-01 20:15:48 · 169 阅读 · 0 评论 -
MVC简介
MVC的全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,是一种软件设计典范。它是用一种业务逻辑、数据与界面显示分离的方法来组织代码,将众多的业务逻辑聚集到一个部件里面,在需要改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑,达到减少编码的时间。 MVC开始是存在于桌面程序中的,M是指业务模型,V是指用户...原创 2018-11-05 23:10:01 · 276 阅读 · 1 评论 -
什么是Scanner?next()和hasNext() ? nextLine()和hasNextLine()?
java.util.Scanner 是 Java5 的新特征,我们可以通过 Scanner 类来获取用户的输入。Scanner sc = new Scanner(System.in);通过 Scanner 类的 next() 与 nextLine() 方法获取输入的字符串,在读取前我们一般需要 使用 hasNext 与 hasNextLine 判断是否还有输入的数据:next() -...原创 2018-11-18 19:05:12 · 12718 阅读 · 3 评论 -
SelectionKey中定义的4种事件
SelectionKey中定义的4种事件SelectionKey.OP_ACCEPT —— 接收连接进行事件,表示服务器监听到了客户连接,那么服务器可以接收这个连接了SelectionKey.OP_CONNECT —— 连接就绪事件,表示客户与服务器的连接已经建立成功SelectionKey.OP_READ —— 读就绪事件,表示通道中已经有了可读的数据,可以执行读操作了(通道目前有数据...原创 2018-11-18 19:30:30 · 4343 阅读 · 0 评论 -
java.nio.Buffer flip()方法
碰到java.nio.Buffer flip()方法,不明白是干什么用的,于是就赶快查看中文API,API上面翻译的是:"反转此缓冲区。首先对当前位置设置限制,然后将该位置设置为零。如果已定义了标记,则丢弃该标记。"; buffer中的flip方法涉及到bufer中的Capacity,Position和Limit三个概念。其中Capacity在读写模式下都是固定的,就是我们分配的缓冲大小,...原创 2018-11-18 19:48:16 · 207 阅读 · 0 评论 -
基于AIO的CS聊天室
所谓AIO,即是异步IO,它的IO操作交由操作系统完成。设置监听器(类似于一个信号处理函数),当系统IO操作完成时,会被监听器监听到,并执行相应的后续操作,然后返回。监听器一般使用CompletionHandler。服务器端代码: package com.nanhao.AIOTest;import java.io.IOException;import java.net.Inet...原创 2018-11-20 09:04:09 · 397 阅读 · 1 评论 -
使用WatchService监控文件变化
package com.nanhao.FileWatch;import java.nio.file.*;public class FileWatch { public static void main(String []args) throws Exception{ WatchService watchService = FileSystems.getDefau...原创 2018-11-25 11:04:58 · 434 阅读 · 0 评论 -
@FunctionalInterface
@FunctionalInterface修饰只有一个抽象方法的接口(可同时包含多个default方法、static方法)。表明这个接口只能有一个抽象方法,不能声明多个抽象方法,否则编译器会报错。只有一个抽象方法的接口是函数式接口。因此,可以说@FunctionalInterface修饰了函数式接口!...原创 2018-11-25 11:50:30 · 295 阅读 · 0 评论 -
Java:异常处理的一些注意事项
java的垃圾回收机制不会回收任何物理资源,垃圾回收机制只能回收堆内存中的对象所占有的内存final块总会被执行。回收物理资源捕获父类异常的catch块必须位于捕获子类异常的catch之后。即使在catch中有return语句,finally语句也会执行!但是如果catch中有system.exit(1)时,将退出虚拟机,finally失去执行的机会。自动关闭资源的try语句相当...原创 2018-12-01 01:24:32 · 211 阅读 · 0 评论