
java基础
楚河涂
一个努力去努力的人......
展开
-
对泛型上下限(协变,逆变)理解的拙见
首先要了解一下以下几点:子类是对父类的扩展,拥有比父类更多的内容,类似包裹关系。接收类型的继承关系级别要大于等于该类,也就是说只有其父类和本身能正常接收,否则需要强制转型。子类转型成父类,会让父类涌入很多新东西,包括重写的。而父类转型成子类,子类本就有了父类的所有内容(包括私有,只是不能使用),认为没得鸟用不推荐,则需要强制转型。转型后调用父类有的方法会优先调用子类中重写过的(说白了就是以子类为主,子类也有隐藏了的没有重写的父类方法)。<? extends A>:原创 2022-03-24 15:06:57 · 176 阅读 · 0 评论 -
java线程Lock使用(原理后期补写)
package rejava3.线程;import java.util.concurrent.locks.ReentrantLock;public class Lock { public static void main(String[] args) { RLock rl=new RLock(); new Thread(rl,"小明").start(); new Thread(rl,"小亮").start(); new Thre原创 2021-10-19 12:10:26 · 2534 阅读 · 0 评论 -
java线程Synchronized
package rejava3.线程;//不安全买票,不安全取钱,ArrayList CopyOnWriteArrayList(JUC)public class Synchronized { //synchronized 锁的是this对象,锁的不是本类的对象则用同步块; // 一般锁需要修改的对象; //锁里的代码越少越好//死锁:在一个锁里锁住了另外一个锁,得到原创 2021-10-19 12:07:43 · 87 阅读 · 0 评论 -
java多线程三种实现
package rejava3.线程;import javax.swing.*;import javax.swing.plaf.nimbus.State;import java.text.SimpleDateFormat;import java.util.Date;import java.util.concurrent.*;class MyThread1 extends Thread{ //一个线程一个类且继承Thread boolean flag=true;原创 2021-10-19 12:06:04 · 79 阅读 · 0 评论 -
java的注解使用
package rejava3.注解;import java.lang.annotation.*;public class TestAnnotation {}class Ano{ @Override public String toString() { return super.toString(); } @Deprecated //废弃的,不推荐使用的 public void method1(){} @S原创 2021-10-19 11:59:54 · 89 阅读 · 0 评论 -
java反射需要用到的属性
package rejava3.反射;import java.lang.annotation.ElementType;import java.lang.annotation.Retention;import java.lang.annotation.RetentionPolicy;import java.lang.annotation.Target;import java.util.List;import java.util.Map;@TC(val="TC_VALUE")public c原创 2021-10-19 11:57:55 · 98 阅读 · 0 评论 -
java的反射操作
package rejava3.反射;import java.lang.annotation.Annotation;import java.lang.annotation.ElementType;import java.lang.reflect.*;import java.util.List;import java.util.Map;import java.util.Properties;public class TestReflection { public static voi原创 2021-10-19 11:54:50 · 82 阅读 · 0 评论 -
一些小问题
package fun;public class sample { public static void main(String args[]){ //异或同一个数字两次值不变,可用来交换值,a,b地址不能一样// int a=3;// int b=5;// a=a^b;// b=a^b;// a=a^b; //j=j++迷惑问题// int j=0;//原创 2021-09-22 11:01:40 · 63 阅读 · 0 评论 -
java工具类之日期相关
package rejava2.工具.日期相关;import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Date;import java.util.SimpleTimeZone;import java.util.TimeZone;import java.util.logging.SimpleFormatter;public class TestData { public static原创 2021-09-22 10:54:59 · 84 阅读 · 0 评论 -
java工具类之字符串相关
package rejava2.工具.字符串相关;import java.util.Locale;import java.util.regex.Matcher;import java.util.regex.Pattern;public class TestString {//String有private final char[] value; final:地址不变,本身长度不变;private:外部不能访问 public static void main(String[] args)原创 2021-09-22 10:46:41 · 120 阅读 · 0 评论 -
Java工具类之包装类
package rejava2.工具.包装类; //完全面向对象public class TestPackage1 { public static void main(String[] args){ Integer a1=10;//自动拆装包了 //都继承Number,xxxValue()方法将包装好的(Integer a1=new Integer(10);int a2=a1.value;)引用类型转化为基本类型 int a2=I原创 2021-07-08 14:19:05 · 79 阅读 · 0 评论 -
Java工具类之数学相关
package rejava2.工具.数学相关;import java.math.BigDecimal;import java.math.BigInteger;import java.text.DecimalFormat;import java.util.Random;import java.util.UUID;public class TestMath { public static void main(String[] args) { //Math里面全是静态的方法和属性 j原创 2021-07-08 14:17:32 · 78 阅读 · 0 评论 -
java类基础之枚举和内部类
package rejava2.内部类和枚举;//内部类可以在任何类中public class TestClass_5 { public static void main(String[] args){ InnerClass.A innerDemo=new InnerClass().new A(); //或import InnerClass.A innerDemo.innerClassMethod(); face fa=new原创 2021-07-08 14:15:08 · 367 阅读 · 0 评论 -
Java类基础之多态
package rejava2.多态;class Human { public String name="父类"; public void speak(){ System.out.println("人说"); } public void play(){ System.out.println("人玩"); }}class Teacher extends Human { public String name="子类"原创 2021-07-08 14:13:42 · 63 阅读 · 0 评论 -
java类基础之抽象类和接口
package rejava2.抽象类和接口;public abstract class TestClass_3 { //抽象类,半个躯壳,和普通类差不多 public TestClass_3(){} //不能用来创建对象,给子类继承的时候用的 public abstract void eat(); //抽象方法,放在抽象类中,给继承用的(可以看作是让子类必须有这个) public static void AA(){}原创 2021-07-08 14:12:08 · 66 阅读 · 0 评论 -
java类基础之继承和修饰符权限
package rejava2.继承和权限;class Hand{ private String ring; //封装好,更安全 private String fingerColor; private final int[] fF=new int[2]; //赋值一次后地址(引用)再不能变,且一定要有值 private final String tf=null; //属性用final修饰后必须赋值,因为属性值默认原创 2021-07-07 23:54:26 · 133 阅读 · 0 评论 -
java类基础
class Person { //类是引用对象,可以作参数传递也可以return还可以搞数组 public String name; public String sex; private int age; public Person() { //用来让无参数调用也能用和继承时用的// System.out.println("我执行了无参数构造方法"); } public Person(St原创 2021-07-07 23:52:40 · 63 阅读 · 0 评论 -
java方法基础
package reJava1;class People { public String name; public String testMethod(String n){ System.out.println("我执行了方法"); return "李信"; } public static void testStatic(){ //static 在静态元素区,(类加载时即初始化)可以通过类名直接调用,GC无法管理,常驻内存原创 2021-07-07 23:50:03 · 80 阅读 · 0 评论 -
java基础小知识
package fun;public class little { public static void main(String[] args) {// \w匹配字母和下划线 \d匹配数字 \s匹配空白// \W匹配非字母和下划线 \D匹配非数字 \S匹配非空白// ASCII码 (空格) (48~57) (65~90) (97~122)// 对应字符 32 0~9原创 2021-07-07 23:48:14 · 60 阅读 · 0 评论 -
java开门基础
仅展示少数与pyhon的区别package reJava1;import java.util.Arrays;import java.util.Scanner;public class 结构基础 {/**///先编译成字节码文件,JVM开辟内存内空间,类加载器把字节码文件搬到JVM中 public static void main(String[] args) { int a1=12,a2=13,a3,a4=9; long b=1L;原创 2021-07-07 23:45:50 · 99 阅读 · 0 评论