
Java
xixihaha_coder
坚持就是胜利!
展开
-
java_反射_获取注解信息
获取注解分析package com.test6;import java.lang.annotation.Annotation;import java.lang.annotation.ElementType;import java.lang.annotation.Retention;import java.lang.annotation.RetentionPolicy;import java.lang.annotation.Target;import java.lang.reflect.原创 2021-07-11 14:03:12 · 101 阅读 · 0 评论 -
java_反射_性能分析对比
性能分析对比package com.test5;import java.lang.reflect.InvocationTargetException;import java.lang.reflect.Method;//分析性能问题public class test10 { // 普通方法调用 public static void test01() { User user = new User(); long startTime = System.currentTimeMillis(原创 2021-07-10 14:11:28 · 167 阅读 · 0 评论 -
java_反射_动态创建对象执行方法
动态创建对象执行方法代码演示package com.test5;import java.lang.reflect.Constructor;import java.lang.reflect.Field;import java.lang.reflect.InvocationTargetException;import java.lang.reflect.Method;//动态的创建对象,通过反射public class test9 { public static void main(原创 2021-07-09 09:55:27 · 297 阅读 · 0 评论 -
java_反射_获取类的运行时结构
获取运行时类的完整结构代码演示package com.test5;import java.lang.reflect.Constructor;import java.lang.reflect.Field;import java.lang.reflect.Method;//获得类的信息public class test8 { public static void main(String[] args) throws ClassNotFoundException, NoSuchFieldEx原创 2021-07-08 09:08:40 · 110 阅读 · 0 评论 -
java_反射_类加载器
类加载器的作用代码演示package com.test5;public class test7 { public static void main(String[] args) throws ClassNotFoundException { //获取系统类的加载器 ClassLoader systemClassLoader = ClassLoader.getSystemClassLoader(); System.out.println(systemClassLoader);原创 2021-07-07 15:01:36 · 135 阅读 · 0 评论 -
java_反射_分析类初始化
什么时候会发生类初始化package com.test5;public class test6 { static { System.out.println("Main类被加载"); } public static void main(String[] args) throws ClassNotFoundException { // 1.主动引用 //Son son = new Son(); /** * 运行结果 Main类被加载 父类被加载了 子类被加载了 */原创 2021-07-06 10:08:28 · 167 阅读 · 0 评论 -
java_反射_类加载内存分析
类加载内存分析代码演示package com.test5;public class test5 {public static void main(String[] args) { A a=new A(); System.out.println(A.m); //100 System.out.println(a.m); //100 /*运行结果 * A类静态代码块初始化 * A类的无参构造初始化 * 100 * 100 * */ }}class A{ s原创 2021-07-05 08:02:59 · 135 阅读 · 0 评论 -
java_反射_所有类型的Class对象
所有类型的Class对象代码演示package com.test5;import java.lang.annotation.ElementType;//所有类型的classpublic class test3 { public static void main(String[] args) { Class c1=Object.class; //类 Class c2=Comparable.class; //接口 Class c3=String[].class; //一原创 2021-07-04 09:20:46 · 104 阅读 · 0 评论 -
java_反射_得到Class类的几种方式
得到Class类的几种方式Class类的常用方法获取Class类的实例package com.test5;//测试Class类的创建方式有哪些public class test2 { public static void main(String[] args) throws ClassNotFoundException { Person person = new Student(); System.out.println("这个人是:" + person.name); //原创 2021-07-03 14:40:07 · 140 阅读 · 0 评论 -
java_反射概述
反射概述获得反射对象package com.test5;//什么叫反射public class test1 {public static void main(String[] args) throws ClassNotFoundException { //通过反射获取类的class对象 Class c1=Class.forName("com.test5.User"); System.out.println(c1); //class com.test5.User Class原创 2021-07-02 12:37:09 · 131 阅读 · 0 评论 -
java_注解
注解Annotation什么是注解代码演示package com.test4;//什么是注解public class Test01 extends Object { //@Override 重写的注解 @Override public String toString() { return super.toString(); }}内置注解代码演示package com.test4;import java.util.ArrayList;import原创 2021-07-01 12:58:02 · 110 阅读 · 0 评论 -
java_多线程_小总结
小总结//回顾总结线程的创建import java.util.concurrent.Callable;import java.util.concurrent.ExecutionException;import java.util.concurrent.FutureTask;//回顾总结线程的创建public class ThreadNew { public static void main(String[] args) { new MyThread1().start(); new原创 2021-06-30 14:44:02 · 94 阅读 · 0 评论 -
重置eclipse窗口界面
不小心点了Detach,使窗口悬浮起来,右键又还原不了 ,怎么让它恢复到原来位置呢?答:重置eclipse窗口界面即可点击Window–>Perspective–>Reset Perspective即可原创 2021-06-29 22:38:30 · 1579 阅读 · 0 评论 -
Dynamic Web Module 4.0 requires Java 1.8 or newer.
Dynamic Web Module 4.0 requires Java 1.8 or newer.java代码没错,但项目上有个红叉新建Dynamic Web项目,报 Dynamic Web Module 4.0 requires Java 1.8 or newer.解决方法1.选择菜单栏Windows–>preferences,弹出如下界面:2.点击add,选择自己的tomcat点击next,选择适合的jrefinish,配置完成...原创 2021-06-29 22:29:45 · 4390 阅读 · 0 评论 -
java_多线程_线程池
线程池import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;//测试线程池public class TestPool { public static void main(String[] args) { //1.创建服务,创建线程池 // newFixedThreadPool 参数为:线程池大小 ExecutorService service = Executors原创 2021-06-29 11:09:03 · 106 阅读 · 0 评论 -
eclipse解决中文乱码
eclipse解决中文乱码(注释乱码)第一种、点击window—>perference–>general–>workspace里面的text file encoding改成other—>utf-8 步骤图如下第二种、点击src,右键properties,出现resource,里面的text file encoding改成other—>utf-8 步骤图如下第三种、点击乱码的java文件,右键properties,出现resource,里面的text file e原创 2021-06-28 11:24:03 · 6661 阅读 · 4 评论 -
java_多线程_信号灯法
信号灯法标志位解决package com.test3;//测试生产者消费者问题2:信号灯法,标志位解决public class TestPC2 { public static void main(String[] args) { TV tv = new TV(); new Player(tv).start(); new Watcher(tv).start(); }}//生产者--->演员class Player extends Thread { TV tv;原创 2021-06-27 11:40:24 · 201 阅读 · 0 评论 -
java_多线程_生产者消费者问题_管程法
生产者消费者问题解决方式一、管程法代码演示//测试:生产者消费者模型--->利用缓冲区解决:管程法//生产者,消费者,产品,缓冲区public class TestPC { public static void main(String[] args) { SynContainer container = new SynContainer(); new Productor(container).start(); new Consumer(container).star原创 2021-06-26 20:22:01 · 164 阅读 · 2 评论 -
java_多线程_死锁_lock锁
死锁代码演示//死锁:多个线程互相抱着对方需要的资源,然后形成僵持public class DeadLock { public static void main(String[] args) { Makeup g1=new Makeup(0, "灰姑凉"); Makeup g2=new Makeup(1, "白雪公主"); g1.start(); g2.start(); }}//口红class Lipstick {}//镜子class Mirror {}原创 2021-06-25 12:12:57 · 131 阅读 · 0 评论 -
java_多线程_扩展_CopyOnWriteArrayList
CopyOnWriteArrayList安全的集合import java.util.concurrent.CopyOnWriteArrayList;//测试JUC安全类型的集合public class TestJUC { public static void main(String[] args) { CopyOnWriteArrayList<String> list = new CopyOnWriteArrayList<String>(); for (int原创 2021-06-25 12:11:22 · 149 阅读 · 0 评论 -
java_多线程_同步方法及同步块
同步方法同步块代码演示买票//买票public class UnsafeBuyTicket { public static void main(String[] args) { BuyTicket b = new BuyTicket(); new Thread(b, "a").start(); new Thread(b, "b").start(); new Thread(b, "c").start(); }}class BuyTicket implements原创 2021-06-24 12:47:16 · 93 阅读 · 0 评论 -
java_多线程_线程同步机制
线程同步机制多个线程操作同一个资源关键字synchronized形成条件 : 队列 和 锁并发同一个对象被多个线程同时操作三大不安全案例案例一、买票案例//不安全的买票public class UnsafeBuyTicket { public static void main(String[] args) { BuyTicjke b = new BuyTicjke(); new Thread(b, "a").start(); new Thread(b, "b"原创 2021-06-23 12:04:22 · 122 阅读 · 0 评论 -
java_多线程_线程优先级_守护线程
线程优先级代码演示//测试线程的优先级public class TestPriority { public static void main(String[] args) { //主线程默认优先级 System.out.println(Thread.currentThread().getName()+"--->"+Thread.currentThread().getPriority()); MyPrioriy myPrioriy=new MyPrioriy(); Thread原创 2021-06-22 10:24:53 · 90 阅读 · 0 评论 -
java_多线程_观测线程状态
观测线程状态代码演示//观察测试线程的状态public class TestState { public static void main(String[] args) throws InterruptedException { Thread thread = new Thread(() -> { for (int i = 0; i < 5; i++) { try { Thread.sleep(1000); } catch (InterruptedE原创 2021-06-21 14:26:44 · 141 阅读 · 0 评论 -
java_多线程_线程停止_线程休眠_线程礼让_线程强制执行
线程状态线程停止测试stop1.建议线程正常停止----->利用次数,不建议死循环2.建议使用标志位----->设置一个标志位3.不要使用stop或者destroy等过时或者JDK不建议使用的方法代码演示public class TestStop implements Runnable { // 1.设置一个标识位 private boolean flag = true; @Override public void run() { int i = 0; wh原创 2021-06-20 11:04:15 · 210 阅读 · 0 评论 -
java_多线程_静态代理模式
静态代理模式代码演示package com.test1;public class StaticProxy { public static void main(String[] args) { /* * 和线程 new Thread( ()-> System.out.println("我爱你")).start(); new * WeddingCompany(new You()).HappyMarry(); */ WeddingCompany w = new原创 2021-06-18 13:48:53 · 113 阅读 · 0 评论 -
java_多线程Lamda表达式
Lamda表达式代码演示一/* 推导lamda表达式 */public class Lamda { //3.静态内部类 static class Like2 implements ILike { @Override public void lamda() { System.out.println("i like lamda2"); } } public static void main(String[] args) { ILike like = new原创 2021-06-17 12:16:47 · 193 阅读 · 0 评论 -
java_多线程Callable
实现Callable接口(了解即可)1.实现Callable接口,需要返回值类型2.重写call方法,需要抛出异常3.创建目标对象4.创建执行服务:ExecutorService =serExecutors.newFixedThreadPool(1);5.提交执行 Future r1=ser.submit(t1);6.获取结果:boolean rs1=r1.get();7.关闭服务: ser.shutdown();代码演示package com.test1;import java.i原创 2021-06-16 11:34:48 · 154 阅读 · 0 评论 -
java_多线程Thread、Runnable
多线程三种创建方式Thread class 继承Thread类(重点)Runnable接口 实现Ru你那边了接口(重点)Callable接口 实现Callable接口(了解)继承Thread类自定义线程类继承Thread类重写run()方法,编写线程执行体创建线程对象,调用start()方法启动线程public class TestThread1 extends Thread { @Override public void run() { // run原创 2021-06-16 10:12:23 · 161 阅读 · 0 评论 -
java____异常概述、理解
异常机制Exception异常指程序运行中出现的不期而至的各种状况,如文件找不到、网络连接失败、非法参数等等。异常发生在程序运行期间,它影响了正常的程序执行流程public class Test { public static void main(String[] args) { System.out.println(11/0); //Exception in thread "main" java.lang.ArithmeticException: / by zero }}原创 2021-06-14 06:57:24 · 1140 阅读 · 2 评论 -
java_抽象类__接口__内部类
抽象类abstract修饰符可以用来修饰方法也可以修饰类,如果修饰方法,那么该方法就是抽象方法;如果修饰类,那么该类就是抽象类抽象类中可以没有抽象方法,但是有抽象方法的类一定要声明为抽象类抽象类,不能使用new关键字来创建对象,它是用来让子类继承的。抽象方法,只有方法的声明,没有方法的实现,它是用来让子类实现的。子类继承抽象类,那么必须要实现抽象类没有实现的方法,否则该子类也要声明为抽象类。//父类//抽象类public abstract class test {原创 2021-06-13 13:31:49 · 1100 阅读 · 1 评论 -
java_instanceof_static关键字讲解
instanceof(类型转换)引用类型,判断一个对象是什么类型//父类public class Person {}//子类public class Student extends Person{ }//子类public class Teacher extends Person{}//测试类public class test { public static void main(String[] args) { Object o=new Student();原创 2021-06-12 10:18:13 · 100 阅读 · 0 评论 -
java面向对象三大特性
封装改露的露,该藏的藏我们程序设计要追求**“高内聚,低耦合”。**高内聚就是类的内部数据操作细节自己完成,不允许外部干涉,低耦合,仅暴露少量的方法给外部使用封装通常,应禁止直接访问一个对象中数据的实际表示,而应通过操作接口来访问,这称为信息隐藏。记住这句话就够了:属性私有,get/set代码理解//Student 类public class Student { //属性私有 private String name;//姓名 private int id;//学号 p原创 2021-06-11 09:31:12 · 82 阅读 · 0 评论 -
java面向对象编程
面向对象编程对于描述复杂的事物,为了从宏观上把握、从整体上合理分析,我们需要使用面向对象的思路来分析整个系统。但是,具体到微观操作,仍然需要面向过程的思路去处理面向对象编程的本质就是:以类的方法组织代码,以对象的组织(封装)数据。三大特征封装继承多态//回顾方法(注意点)public class test3 { public static void main(String[] args) { test3.a();//如果类上有static 就可以直接类名.方法名;否原创 2021-06-10 10:51:17 · 89 阅读 · 0 评论 -
java扩展模糊数组
数组的扩展 稀疏数组public class test2{ public static void main(String[] args) { //1.创建一个二维数组11*11 0:没有棋子 1:黑棋 2:白棋 int[][] array1=new int[11][11]; array1[1][2]=1; array1[2][3]=2; System.out.println("输出原始的数组"); for(int[] ints:array1) { for(in原创 2021-06-09 14:30:08 · 126 阅读 · 0 评论 -
java基础复习-06_数组
数组数组是相同类型数据的有序集合。其中每个数据称作一个数组元素,每个数组元素可以通过一个下标来访问它们。其长度是确定的,数组一旦被创建,它的大小就是不可以改变的。数组对象本身是在堆中数组的声明和创建dataType [ ] array=new dataType [size]; //首选的方法dataType array[ ]=new dataType [size]; //不推荐也可以直接赋值 int[ ] arr={1,2,3};例如 int [ ] nums=new int原创 2021-06-08 23:52:31 · 248 阅读 · 0 评论 -
java基础复习-05_方法
方法方法的本意是功能块,就是实现某个功能的语句块的集合驼峰命名法给方法加上static,本类就可直接调用,其他类要调用要new 本类//方法的定义 修饰符 返回值类型 方法名(参数1,参数2...){ ... 方法体 ... return 返回值; } //方法调用//方法名(参数1,参数2...);形参 用来定义 public static void add ( int a,int b) { }实参 实际传递原创 2021-06-07 13:46:53 · 93 阅读 · 0 评论 -
java基础复习-04_循环
包机制定义包 package 包名一般是公司域名的倒置 例如 com.xxx.entity使用包 import 包名*注:import 包名.代表把包下的所有类都导进来JavaDoc生成文档(了解即可)用户交互Scannerimport java.util.Scanner;public class test {public static void main(String[] args) { Scanner s=new Scanner(System.in); if(s.hasN原创 2021-06-06 17:07:50 · 159 阅读 · 0 评论 -
java基础复习-03_运算
基本运算符扩展 idea小技巧全选包 点第一个包 按住shift 再点最后一个包 即可ctrl+D : 复制当前行到下一行public class Test1 { public static void main(String[] args) { long a=12312313L; int b=123; short c=10; byte d=8; System.out.println(a+b+c+d);//lo原创 2021-06-06 15:00:43 · 107 阅读 · 0 评论 -
java基础复习-02_变量常量
类型转换强制类型转换//格式 强制转换 (类型)变量名 高到低int i =128; byte b=(byte)i; //内存溢出System.out.println(i); //128System.out.println(b); //-128自动类型转换//格式 低到高int i =128; double b=i; System.out.println(i); //128System.out.println(b); //128.0原创 2021-06-05 22:11:40 · 90 阅读 · 0 评论