![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java学习
java学习旅程
静安书以沫
知识是一点点积累的,路是一步步走出来的
展开
-
记第一次见到 java双括号初始化
而跑这个new对象时,会走构造方法,因为继承了HashMap所以调用父类的put方法。运行后,其实生成的是一个匿名内部类,这个类继承了HashMap,即相当于。实际是利用内部类+修改内部类的构造方法实现的。编译后的代码结构是这样。原创 2023-05-15 18:14:54 · 235 阅读 · 0 评论 -
测试JSP四大域对象作用范围
JSP四大域对象pageContext、request、session、application以上书写的顺序,是按照域对象作用范围从小到大书写的!这里服务器是用的Tomcat(免费开源都爱用0.0)在当前页面获取域对象的值areaObject.jsp:<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%><!DOCTYPE html><h原创 2020-12-14 21:45:29 · 414 阅读 · 0 评论 -
java-典型的死锁问题
典型的死锁问题package com.test;//典型的死锁public class Test { public static void main(String[] args) { Thread one = new A(); Thread two = new B(); one.start(); two.start(); }}class Mylock{ public static Object a = new Object(); public static Obj原创 2020-11-20 22:10:36 · 119 阅读 · 0 评论 -
java学习-HashSet 添加引用类型 的 内容去重原理,究其原码
去重方法HashSet去重需要重写 hashCode和equals方法,这两个方法继承自Object类。例如创建如下Student类class Student{ String name; public Student(String name) { super(); this.name = name; } @Override public int hashCode() { final int prime = 31; int result = 1; result = prim原创 2020-11-20 21:47:19 · 329 阅读 · 0 评论 -
java学习-线程的6种状态,究其原码
线程的状态关于线程的状态,又说6种状态,又说7种状态,原因是在JDK5之后,Ready和Running合称Runnable状态。New 初始状态 :在新建一个thread对象后,线程刚刚建立时Ready就绪状态 : 在线程调用start方法后,线程随时准备抢占时间片Running 运行状态 :在线程获取到cpu的时间片后,线程正在占用cpu资源Time Waiting 限期等待状态 :在线程调用sleep方法后,此线程进入休眠,在一定时间(sleep设定的时间)内,此线程处于限期等待Wait原创 2020-11-20 20:45:25 · 104 阅读 · 0 评论 -
java误区--整数常量池陷阱
在java中有整数常量池,范围是-128-127, 自动装箱时超过此范围则创建对象package com.day13;public class Day13 { public static void main(String[] args) { //整数常量池陷阱 //在java中有整数常量池,范围是-128-127, 自动装箱时超过此范围则创建对象 Integer integer1 = 100; Integer integer2 = 100; System.out.println(i原创 2020-11-12 11:18:20 · 180 阅读 · 0 评论 -
Java中的<<、>>、>>>位运算区分
Java中的<<、>>、>>><<低位补零-20>>2 原码:1001 0100补码:1110 1100 取反加一,符号不变>>正数高位补零负数高位补一例如 :-20>>2>>>无符号右移 高位补零...原创 2020-11-03 11:22:09 · 326 阅读 · 0 评论 -
java学习-double类型的存储缺陷
问题的提出package example8;public class Demo { public static void main(String[] args) { double num1 = 0.5; double num2 = 0.4; System.out.println(num1-num2); }}你觉得输出的应该是什么呢?是0.1吗,那你就错了。输出的是:0.09999999999999998为什么这涉及到二进制与十进制的转换问题。举个例子:现在需要用64b原创 2020-08-26 17:16:28 · 510 阅读 · 0 评论 -
java学习-四大内部类
四大内部类成员内部类静态内部类局部内部类匿名内部类(没有类名的局部内部类)内部类当然要现有外部类了package test1;public class outer { private String name="tom"; private int age = 10; //成员内部类 class chengyuaninner{ private String name = "ally";//成员内部类属性不可为静态,但可为静态常量 private int age = 15; p原创 2020-08-24 16:54:14 · 104 阅读 · 0 评论 -
java学习-局部内部类无法访问同名局部变量
局部内部类局部内部类是在方法中定义的类。它的可见范围是当前方法。局部内部类不能用访问控制修饰符(public、private以及protected)和静态修饰符static来修饰。局部内部类中除了可以访问外部类的所有成员,还可以访问所在方法的final变量或参数。JDK1.7之前要访问的局部变量必须用final修饰——即变为常量JDK1.8及以后将自动添加final——即编程序时可以不写final,编译自动添加局部内部类访问局部变量(常量)说是局部变量,其实应该是局部常量,使用final修饰原创 2020-08-24 16:11:13 · 807 阅读 · 7 评论 -
java学习-文档注释/** */生成帮助文档
文档注释的写法:/**内容 */例子:package example8;/**文档注释 注释类*/public class Demo { /**私有变量i */ private int i=10; /**main方法 */ public static void main(String[] args) { // TODO 自动生成的方法存根 Demo demo1 = new Demo(); System.out.println(demo1.getI()); demo1.setI原创 2020-08-14 17:14:27 · 466 阅读 · 0 评论 -
java学习-线程与进程
package 读写锁;import java.util.concurrent.Callable;import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;import java.util.concurrent.locks.ReentrantLock;import java.util.concurrent.locks.ReentrantReadWriteLock;import java.u原创 2020-06-30 10:41:35 · 105 阅读 · 0 评论 -
java学习-自定义注解,使用注解,注解的信息获取,注解继承
JAVA学习—注解(区别于注释)注释 常用 “//” 和 “/* */” 是程序员编写程序时添加的一些注释性内容,不会被程序读取,对程序没有影响注解(英文:Annotation):package Annotation;public class Demo { public static void main(String[] args) { // TODO 自动生成的方法存根 /* * 注解是代码里的特殊标记,程序可以读取,一般用于代替配置文件 * 开发人员通过注解来告原创 2020-08-10 16:27:00 · 899 阅读 · 0 评论 -
java学习-线程池
package 线程池;import java.util.concurrent.Callable;import java.util.concurrent.ExecutionException;import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;import java.util.concurrent.Future;public class text { public static原创 2020-06-30 10:43:12 · 72 阅读 · 0 评论