
JavaSE
Java中常见的问题
还在学习进步
这个作者很懒,什么都没留下…
展开
-
讲一个字符串进行反转.讲字符串中指定部分进行反转.
第一部分不变 第二部分变 第三部分不变原创 2022-03-14 15:59:41 · 83 阅读 · 0 评论 -
Java的反射机制
功能:在运行时判断任意一个对象所属的类在运行时构造任意一个类的对象在运行时判断任意以一个类所具有的成员变量和方法在运行时获取泛型信息在运行时调用任意一个对象的成员变量和方法在运行时处理注解生成动态代理疑问1.什么时候使用反射?反射的方式 反射的特征:动态性2.反射机制和面向对象中封装性是不是矛盾?如何看待两个技术?不矛盾关于java.lang.Class类的理解1.类的加载过程:程序经过javac.exe命令以后, 会生成一个或多个字节码文原创 2022-04-07 18:48:25 · 275 阅读 · 0 评论 -
Java中的网络编程
1.一个IP对应着InetAddress类的对象实例化方法:①InetAddress.getByName(String host) ②InetAddress.getLocalHost() 获取本地IP常用方法:getHostName(); getHostAddress()2.TCP协议和UDP协议TCP:可靠的数据传输(三次握手); 进行大数据量的传输UDP:不可靠; 以数据报形式发送, 数据报限定为64k; 效率高3.URL:统一资源定位符实例化: 例如UR原创 2022-04-04 15:14:29 · 1625 阅读 · 0 评论 -
Java中的IO流
流的概念图:一、流的分类:1.操作数据单位:字节流、字符流2.数据的流向:输入流、输出流3.流的角色:字节流、处理流二、流的体系结构抽象基类 节点流(或文件流) 缓冲流(处理流的一种)InputStream FileInputStream BufferedInputStreamOutputSt...原创 2022-03-24 19:12:56 · 382 阅读 · 0 评论 -
File类的使用
1.File类的一个对象,代表一个文件或文件目录(俗称: 文件夹)2.File类声明在java.io包下3.File类中涉及到关于文件或文件目录的创建、删除、重命名、修改时间、文件大小等方法,并未涉及到写入或读取文件内容的操作.如果需要读取或写入文件内容,必须使用IO流来完成.4.后续FIle类的对象常会作为参数传递到流的构造器中, 指明读取或写入的"终点"1.如何创建File类的实例①File(String filePath)②File(String parentPath,原创 2022-03-24 09:31:37 · 607 阅读 · 0 评论 -
Java泛型
泛型的使用1.jdk 5.0新增的特性在集合中使用泛型之前的情况:问题一:类型不安全问题二:强转时,可能出现ClassCastException在集合中使用泛型的情况:以HashMap为例优点:①编译时,就会进行类型检查,保证数据的安全②避免了强转操作2.在集合中使用泛型:总结:①集合接口或集合类在jdk5.0时都修改为带泛型的结构②在实例化集合类时,可以指明具体的泛型类型③指明完以后,在集合类或接口中凡是定义类或接口时,内部结构使用到类的泛型的位原创 2022-03-18 20:24:38 · 239 阅读 · 0 评论 -
Java注解
Annocarion的使用实例:示例一:生成文档相关的注解示例二:在编译进行格式检查(JDK内置的三个基本注解)@Override: 限定重写父类方法,该注解只能用于方法@Deprecated: 用于表示所修饰的元素(类, 方法等)已过时.通常是因为所修饰的结构危险或存在更好的选择@SuppressWarnings: 抑制编译期警告示例三:跟踪代码依赖性,实现代替配置文件功能如何自定义注解?可参照@SuppressWarni...原创 2022-03-17 09:30:39 · 84 阅读 · 0 评论 -
Java中的枚举类
定义: 类的对象只有有限个,确定的,我们称此类为枚举类1.当需要定义一组常量时,强烈建议使用 枚举类2.如果枚举类中只有一个对象,则可以作为单例模式的实现方式如何定义枚举类?方式一: jdk5.0之前, 自定义枚举类方式二::jdk5.0, 可以使用enum关键字定义枚举类//valueOf(String objName) : 返回枚举类中对象名是objName的对象使用enum关键字定义的枚举类实现接口的情况情况一:实现接口,在enum类中实现抽象方法情况二:让原创 2022-03-16 16:26:56 · 383 阅读 · 0 评论 -
Java比较器Comparable和Comparator
Comparable接口的方式一旦一定,保证Comparable接口实现类的对象在任何位置都可以比较大小Comparator接口属于临时性的比较Comparable接口的使用举例:1. 像String 包装类等实现了Comparable接口,重写了compareTo() 方法,给出了比较两个对象大小的方式2.像String 包装类重写compareTo()方法以后,进行了从小到大的排列3. 重写compareTo()的规则:如果当前对象this大于形参对象obj,则返回正整数,原创 2022-03-15 21:24:50 · 651 阅读 · 0 评论 -
JDK8中的日期时间API
LocalDateTime LocalDate LocalTime1.LocalDateTime相较于LocalDate LocalTime, 使用频率要高Instant的使用Instant instant = Instant.now();sout.instant 本初子午线的时间如下:2.DateTimeFormatter:格式化或解析日期 时间类似于SimpleDateFormatter...原创 2022-03-15 19:47:40 · 325 阅读 · 0 评论 -
JDK8之前的日期时间API
1.System类中的currentTimeMillis()用来返回当前时间与1970年1月1日0分0秒之间以毫秒为单位的时间差称为时间戳2.java.util.Date类| --- java.sql.Date类①两个构造器的使用②两个方法的使用>toString():显示当前的年 月 日 时 分 秒>getTime:获取当前Date对象对应的时间戳(毫秒数)③java.sql.Date对应数据库中的日期类型的变...原创 2022-03-14 15:31:52 · 1472 阅读 · 0 评论 -
StringBuffer StringBuilder
String StringBuffer StringBuilder三者的异同?String:不可变的字符序列; 底层使用char[] 存储StringBuffer:可变的字符序列; 线程安全的,效率低, 底层使用char[] 存储StringBuilder:可变的字符序列; JDK5.0新增, 线程不安全的,效率高,底层使用char[] 存储...原创 2022-03-14 14:59:31 · 347 阅读 · 0 评论 -
String与基本数据类型包装类 char[]之间的转换
String → 基本数据类型、包装类:调用包装类的静态方法:parseXxx(str)基本数据类型、包装类 → String:调用String重载的valueOf(xxx)String 与 char[]之间的转换String → char[] : 调用String的toCharArray()char[] → String : 调用String的构造器String 与 byte[] 之间的转换String → byte[] : 调用String的getBytes ()...原创 2022-03-14 09:13:30 · 137 阅读 · 0 评论 -
Java中String的常用方法
1.String声明为final的,不可被继承2.String实现了Serializable接口:表示字符串是支持序列化的实现了Comparable接口:表示String可以比较大小3.String内部定义了final char[] value用于存储字符串数据4.String:代表不可变的字符序列.简称:不可变性体现:1. 当字符串重新赋值时,重新重写指定内存区域赋值,不能使用原有的value进行赋值2.当对现有的字符串进行连接操作时,也需要重新做指定内存区域赋值,不能使用原有的v原创 2022-03-11 16:10:13 · 572 阅读 · 0 评论 -
如何解决Java线程中的安全问题
解决方法: 当一个线程a操作的时候,其他线程不能参与进来.知道线程a操作完,其他线程才可以操作.这种情况即使线程a出现了阻塞,也不能被改变在Java中,我们通过同步机制,来解决线程安全的问题方式一: 同步代码块synchronized(同步监视器){//需要被同步的代码}说明:1.操作共享数据的代码,即为需要被同步的代码. ---->不能包含代码多了,也不能包含代码少了2.共享数据:多个线程共同操作的变量3.同步监视器,俗称:锁.任何一个类的对象都可以充当锁..原创 2022-03-09 21:45:10 · 354 阅读 · 0 评论 -
Java多线程中sleep()和wait()的异同
相同点:一旦执行方法,都可以使得当前的线程进入阻塞状态.不同点:①两个方法声明的位置不同:Thread类中声明sleep(),Object类中声明wait()② 调用的要求不同:sleep()可以在任何需要的场景下调用.wait()必须使用在同步代码块或 者同步方法中 ③关于是否释放同步监视器:如果两个方法都使用在同步代码块或同步方法中,sleep()不会释 放锁,wait()会释放锁...原创 2022-03-09 19:42:07 · 211 阅读 · 0 评论 -
Java中synchronized与Lock的异同
相同:二者都可以解决线程安全问题不同:synchronized机制在执行完相应的同步代码之后,自动释放同步监视器Lock需要手动的启动同步( lock() ),同时结束同步也需要手动的实现( unlock() )优先使用顺序:Lock → 同步代码块(已经进入了方法体,分配了相应资源) → 同步方法(在方法体之外)...原创 2022-03-09 15:55:25 · 172 阅读 · 0 评论 -
Java线程中的常用方法
给线程起名的另一种方法:建立带参的构造器yield():暂停当前正在执行的线程对象(及放弃当前拥有的cup资源,并执行其他线程yield()将导致线程从运行状态转到可运行状态,但有可能没有效果join() :在线程a中调用线程b的join(),此时线程a进入阻塞状态,知道线程b完全执行完以后,线程a才结束阻塞状态...原创 2022-03-03 20:09:08 · 276 阅读 · 0 评论 -
Java创建多线程的4种方法
方式一:继承于Thread类1.创建一个继承于Thread类的子类2.重写Thread类的run() --> 将此线程执行的操作声明在run()中3.创建Thread类的子类的对象4.通过此对象调用start():①启动当前线程 ②调用当前线程的run()问题一:我们不能用通过直接调用run()的方式启动线程问题二:在启动一个线程,遍历100以内的偶数(例子中的线程里面的功能 ).不可以还让已经start()的线程去执行.会报IllegalThread我们需要重新创建一个线原创 2022-03-03 16:35:02 · 1307 阅读 · 0 评论 -
Java异常处理
throw是手动抛出一个异常 throws是异常处理的方式1.getMessage() 使用方法: 异常对象 名, 名.getMessage()2.printStackTrace(); 名.printStackTrace()打印整个堆栈的异常信息(手动爆红)原创 2022-03-01 20:45:34 · 131 阅读 · 0 评论 -
JSON
·{ ...原创 2021-05-27 21:31:54 · 91 阅读 · 0 评论 -
Java如何在main方法中实例化内部类
1.非静态内部类,必须有一个外部类的引用才能创建:Man man = new Person().new Man();2.把内部类改成了静态的,也可以解决内部类在外部类main方法中实例化的问题原创 2021-05-19 20:01:50 · 720 阅读 · 0 评论