Java基础
石刻春秋
用分享来鞭策和激励自己,抵制拖沓、懒惰。
展开
-
java-string不可变
/String 类是final修饰的类,一旦创建内容和长度不可以改变(是字符串本身不能改变,不是引用指向的字符串不能改变,不能混淆)//2.通过new创建的string字符串,不是在常量池中,因此相同的字符串内容,并不是同一个地址值。//1.结果true,在创建字符串时,会在常量池中查找是否存在相同的字符串,有则返回引用。//没有则创建,所以str str1 地址指向同一个字符串,因此地址值相等,TRUE。//再次验证,已经存在通过new的字符串,通过复制方式,获取到的引用不相同。原创 2022-10-23 17:37:20 · 526 阅读 · 1 评论 -
Java-变量常量/变量作用范围
变量原创 2022-10-23 16:22:06 · 567 阅读 · 0 评论 -
Java-数据类型
基本数据类型原创 2022-10-22 16:30:56 · 385 阅读 · 0 评论 -
Java-标识符要求
标识符原创 2022-10-22 16:28:14 · 326 阅读 · 0 评论 -
Java- Stream API
目录Stream Api 特点一、Stream 实例化 三种方式二 、中间操作 1.筛选与切片是的筛选与切片筛选与切片映射排序三、终止操作匹配与查找归约收集四、OptionalStream Api 特点* 使用 Stream API 对集合数据进行操作,就类似于使用SQL执行的数据库查询。* 也可以使用Strem API 来并行执行操作。* Stream API 提供一种高效且易于使...原创 2022-04-16 13:10:55 · 1278 阅读 · 0 评论 -
Java- 方法引用、构造器引用、数组引用
方法引用方法引用本质上就是Lambda表达式,而Lambda表达式本质上是函数接口的实例化,那么方法引用本质上也是函数接口的实例化。格式: 类(对象) :: 方法名 不需要参数列表对象 :: 非静态方法类 :: 静态方法方法引用使用要求: 函数接口中抽象方法的形参列表和返回值类型,与方法引用的方法 的形参列表和返回值类型都相同类 :: 非静态方法Comparable int compare(o1,o2)String int o1.compareTo...原创 2022-04-16 07:08:03 · 244 阅读 · 0 评论 -
Java-Lambda表达式以及四大核心函数式接口
1.Lambda表达式本质 : 作为函数接口的实例2.在java中,Lambda 表达式是对象,而不是函数,它必须依附于一类特别的对象类型----函数式接口。什么是函数接口? 1.一个接口,只有一个抽象方法,成为函数接口2.加上@FunctionalInterface 注解,可以检验是否是函数接口@FunctionalInterface // 语法格式一:无参,无返回值 @Test public void test1() { Runnabl.原创 2022-04-15 10:41:21 · 574 阅读 · 0 评论 -
Java- 反射 动态代理
要实现动态代理,要解决的问题: 1.根据加载到内存的被代理类,动态的创建代理类以及对象 2.通过代理类对象调用方法时,如何实现被代理类调用同名的方法。class ProxyFactory{ //传入被代理类对象,返回一个代理类对象 ojb是被代理类对象 //解决问题1: public static Object getProxyInstance(Object obj) { MyInvocationHandler ha...原创 2022-04-15 01:02:43 · 547 阅读 · 0 评论 -
Java-静态代理类
举个栗子:代理类:public class ProxyClothFactoty implements ClothFactory1{ private ClothFactory1 clothFactory; public ProxyClothFactoty(ClothFactory1 clothFactory) { this.clothFactory = clothFactory; } @Override public void produ原创 2022-04-14 22:42:38 · 299 阅读 · 0 评论 -
Java-反射
获取Class 实例方式//方式1 // Class<Person> clazz = Person.class; Class clazz = Person.class; System.out.println(clazz);//class Day4_12.Person //方式2 ,通过运行时类的对象 Person p = new Person(); Class clzz2 = p.g..原创 2022-04-14 21:54:58 · 384 阅读 · 0 评论 -
Java-UDP
客户端 @Test public void sent() { DatagramSocket socket = null; try { socket = new DatagramSocket(); String str = "来自客户端"; byte[] buffer = str.getBytes(); InetAddress inet = InetAddress.g.原创 2022-04-14 16:17:58 · 511 阅读 · 0 评论 -
Java-Tcp
@Test public void testServer() { ServerSocket ss = null; Socket socket = null; InputStream is = null; BufferedOutputStream bos = null; try { //1.获取服务端 serverSocket ,指明端口号 ss = new Serve..原创 2022-04-14 16:15:48 · 99 阅读 · 0 评论 -
Java-自定类实现序列化
如果自定义类实现序列化要求: 1.实现 Serializable 表示接口 2.提供一个当前类的全局变量class Chinese implements Serializable { private static final long serialVersionUID = -3387516993124229948L; private String name; private int age; public Chinese() { } p..原创 2022-04-13 23:19:13 · 909 阅读 · 0 评论 -
Java-I/O流
1.File Reader 、FileWriter,使用注意:File相对路径,在main中相对路径是工程,在单元测试中相对路径是Module举个栗子:@Test public void testReadWrite() { FileReader fr = null; FileWriter fw = null; try { //1.实例化File 读入写出文件 File srcFile..原创 2022-04-13 22:00:32 · 86 阅读 · 0 评论 -
Java-Collections工具类
Collections:工具类,操作Collection,Map@Test public void testMethod(){ //reverse(list)反转 List list = new ArrayList(); list.add(32); list.add(234); list.add(2345); list.add(64); list.add(34); ..原创 2022-04-12 19:52:08 · 250 阅读 · 0 评论 -
Java-集合Map及其子类
1.Map及其子类特点Map: 双列数据 key value对数据 类似于函数 HashMap :Map主要实现类:线程不安全,效率高,可以存储null的键值对 LinkedHashMap:保证遍历时,按照存储的顺序。 原因:LinkedHashMap在底层中添加了一对指针,分别指向前后 元...原创 2022-04-12 19:07:18 · 973 阅读 · 0 评论 -
Java-集合Set及其子类
set:无序,不可以重复 HaseSet: set主要的实现类,线程不安全,效率高; LinkedHaseSet:底层是双向链表结构,可以按照添加的顺序遍历; TreeSet: 可以按照对象指定的属性排序;无序:不是指随机,而是存储的时候不是按照索引顺序存储;不可重复:存储元素时候,首先比较哈希值,如果哈希值相同再比较equal比较是否相同举个栗子:Set<Person> set = new TreeSet<P...原创 2022-04-12 18:54:01 · 542 阅读 · 0 评论 -
Java-List常用方法
/* * List: 有序,不重复 * ArrayList:list的主要实现类,线程不安全,效率高;底层时Object[] 存储 * LinkedList:双向列表结构,对于频繁插入、删除操作使用此类比Array List效率更高,底层时双向链表 * Vector:list古老的实现类,线程安全,效率低。底层时Object[] * * */ public static void main(String[] args) { ..原创 2022-04-11 20:53:29 · 5810 阅读 · 1 评论 -
Java-Iterator 迭代器
//迭代器 Iterator Collection coll = Arrays.asList("123", "45", "jj", "uu", "yy"); //获取迭代器 Iterator iterator = coll.iterator(); //hasNext(); 判断有更多的元素(如果next()返回一个元素而不是抛出一个异常,则返回true) //next();迭代中下一个元素 while (it..原创 2022-04-11 18:30:50 · 88 阅读 · 0 评论 -
Java-Collection常用方法
public void testColletionMethod1() { Collection collection = new ArrayList(); //1. add() collection.add("h"); collection.add("kkk"); collection.add(111);//自动装箱 //2,size() 获取元素个数 System.out.println..原创 2022-04-11 17:34:13 · 223 阅读 · 0 评论 -
Java-枚举类enum及常用方法
不使用关键字创建枚举类public class Testenum { public static void main(String[] args) { Season season = Season.SPRING; System.out.println(season); }}//创建季节枚举类class Season{ //1.私有化属性 private String seasonName; private Str.原创 2022-04-11 12:17:54 · 144 阅读 · 0 评论 -
Java-比较器Comparable Comparator
Comparable Comparator 比较对象的大小1,String ,包装类等,实现了Comparable接口,重写compareTo();方法实现对象比较,从小到大排序2.重写compareTo()规则 1.当对象this 大于形参obj 时候返回正整数, 2.当对象this 小于形参obj 时候返回负整数, 3.当对象this 等于形参obj 时候返回0,3.对于自定义类,如果要实现对象比较大小,那么实现Comparable,重写compareTo();方.原创 2022-04-11 10:36:20 · 578 阅读 · 1 评论 -
Java-常用类-时间日期
//Date 日期的使用 util.Date Date date = new Date();//创建当前时间的数据库 System.out.println(date.toString());//Sun Apr 10 21:17:17 CST 2022 System.out.println(date.getTime());//1649596547068 System.out.println(date);//Sun Apr 10 21:22:5..原创 2022-04-10 21:30:43 · 552 阅读 · 0 评论 -
Java-StringBuffer 常用方法
原创 2022-04-10 20:51:36 · 297 阅读 · 0 评论 -
Java-String和其它结构的转换
//String 和其它结构的转换 //1.String 和基本数据类型和包装类转换 String str = "123"; int num = Integer.parseInt(str); System.out.println(num); //基本类型,转换为string str = String.valueOf(num);//相当于 num+""; System.out.println..原创 2022-04-10 19:57:30 · 316 阅读 · 0 评论 -
Java-String 常用类(二)
public static void main(String[] args) { String s1 = "HelloWorldHelloChina"; //endWith( String s); 判断是否是以 字符串s结尾 boolean b1 = s1.endsWith("ina"); System.out.println(b1 + "----test endWith()"); boolean b2 = s1.sta..原创 2022-04-10 12:43:42 · 84 阅读 · 0 评论 -
Java-String常用方法(1)
public static void main(String[] args) { //int length() 字符串长度 String s1 = "HelloWord"; System.out.println(s1.length()); // char charAt( int index); 返回字符串指定索引位置的字符 char c = s1.charAt(2); System.out.println(.原创 2022-04-10 09:47:15 · 80 阅读 · 0 评论