
java基础学习
记录学习的java基础
快乐撸代码
一个今天胜过两个明天
展开
-
java 位移符号
HashMap 在计算哈希值的时候,使用到了 >>> 符号 ,这里做个记录 System.out.println(Integer.toBinaryString(10)); //输出: 1010 System.out.println(Integer.toBinaryString(-10)); //输出:11111111111111111111111111110110十进制转化为二进制对于正整数,十进制直接转化为二进制对于负整数,用正数十进制转化为二进原创 2021-12-09 12:40:54 · 631 阅读 · 0 评论 -
List容器
List 容器ArrayList使用Object[] 数组存储对象//定义一个只能存放String的ArrayList,此时没有传参数,strings的容量为 0 ArrayList<String> strings = new ArrayList<>(); //添加对象之前会保证容器的容量足够大,如果不够就会进行扩容操作(如果构造器未传参数,默认扩容为容量10,否则新容量 新容量 = 老容量 + (老容量>>1),默认最大容量是 Integer.MaxValu原创 2021-12-05 17:25:04 · 703 阅读 · 0 评论 -
synchronized 修饰普通方法与静态方法的区别
面试时候被问的问题,当时脑子里闪了一下,但是没答出来先说结论:synchronized 修饰普通方法时,锁的是当前对象的方法,等价于 synchronized (this)synchronized 修饰静态方法时,锁的是所有对象的方法,等价于 synchronized (Xxx.class)我们知道,普通方法从属于对象,而静态方法从属于类带着疑惑,来看代码吧情景1:当 synchronized 修饰 普通方法后,同一个对象被两个线程调用 结果public class TestM.原创 2021-12-07 18:13:17 · 1713 阅读 · 1 评论 -
泛型的使用
什么是泛型?通过参数化类型(把类型当作参数传递,编译之前并不能确定具体的操作类型),使一段代码可以操作多种数据类型。我们肯定希望一个集合能够装不同类型的数据。比如String,Integer…… 虽然我们可以使用Object 来进行上溯造型 但是我们下溯造型的时候并不能确定具体的类型,很难保证下溯造型的安全进行. 这时泛型可以让集合不指定具体的使用类型(参数化类型),例如用<E>来代替具体的类型使用泛型泛型类class collection<E> {}泛型方法原创 2021-11-24 15:28:39 · 212 阅读 · 0 评论 -
使用枚举类
/** * 枚举类. */public class Main { public static void main(String[] args) { System.out.println(CompanyEnum.SF.getCode()); System.out.println(CompanyEnum.SF.getCompany()); System.out.println(CompanyEnum.getCodeByCompany("顺丰速运".原创 2021-11-23 21:47:23 · 409 阅读 · 0 评论 -
使用内部类
应用场景封装性 只能通过外部类访问到内部类,外部类在实例化内部类时可以做一些判断通过内部类可以间接实现多继承,可以通过内部类区分出具体调用的是哪个类继承过来的方法,即使父类之前出现同名方法也不担心普通内部类定义在类中. 内部类和外部类可以互相访问其属性class Person { private String idCard; static String name; //外部类方法 可以直接访问内部类实例的私有属性 void work(){原创 2021-11-23 15:22:40 · 296 阅读 · 0 评论 -
== 与 equals 的区别
== 是运算符对于基本数据类型来说,直接比较值是否相等;对于引用数据类型(类、接口、数组)来说,比较是否是同一对象(地址是否相同)equals() 是方法equals() 是Object类的方法,比较的是对象是否相同;Object: public boolean equals(Object obj) { return (this == obj); }如果需要比较值是否相同,则需要重写equals()方法例如String类的equals方法public boo原创 2021-11-22 17:43:36 · 471 阅读 · 0 评论 -
封装—权限访问修饰符
访问修饰符通过控制方法、属性的不同访问权限,对外部暴露必要的接口,提供给客户程序员使用。将外部的功能和内部实现分隔。客户程序员无需关心内部实现。这样在以后修改内部的具体实现细节(比如HashMap的优化),不会影响到客户程序员的使用。public所有的包都可以访问public属性protected只有同一个包下的类可以访问,或者虽然不在同一包下,但是继承父类,就可以访问到protected属性。friendly必须在同一个包下,才能访问到默认属性。即使不在同一个类也可以访问到。privat原创 2021-09-07 09:07:37 · 241 阅读 · 0 评论 -
Java程序的运行机制
文章目录使用命令行编译运行 Java 程序JVM运行原理JREJDK使用命令行编译运行 Java 程序首先使用编辑器编写一个Java源程序,后缀名为 .java注意 :类名 Hello 和 文件名 Hello 要一致;使用UTF-8编码;然后将文件后缀名改为.java然后使用编译器 javac 把源程序编写成字节码文件 ,后缀名为 .class最后通过虚拟机(解释器)解释执行 字节码文件JVM运行原理概念 JVM(JAVA虚拟机)是运行Java字节码的虚拟机,通过编译原创 2021-04-06 10:23:24 · 378 阅读 · 0 评论 -
使用IDEA 进行 JDBC 获取数据库连接注意!!!
使用IDEA 进行 JDBC 获取数据库连接注意!!! 今天获取数据库连接 getConnection 的时候,一直报错!因为之前用的是 ecplise 添加MySQL驱动,并且平时没有注意 配置文件jdbc.properties 路径 、驱动所在路径、类所在路径 三者的关系,今天就一直卡着……今天血的教训来记录一下注意几点:jdbc.properties 配置文件要和所用类在同一文件目录下,因为在代码中使用的加载配置文件流,所使用的 class.getClassLoader.原创 2021-01-12 20:16:26 · 1524 阅读 · 1 评论 -
使用java建立二叉查找树
使用java建立二叉查找树/** * java 建立 二叉查找树 */ public Node build(Node root,int temp) { if(root==null) { Node node = new Node(); node.data=temp; node.left=null; node.right=null; return node; } if(temp>root.data) { root.right=build(root原创 2020-11-30 20:17:04 · 304 阅读 · 0 评论 -
java —— static 关键字
@static 关键字static 用法声明静态成员变量(也称类变量),从属于类,是该类的公用变量,生命周期与类相同,**注意与普通成员变量区分 ** 普通成员变量从属于对象,生命周期与对象相同。注意!!!static 方法不可访问非static 成员,非static成员从属于对象,在堆内存中无法找到。个人理解:static 变量声明初始化以后,创建的对象全都是被初始化过的,相当于这个...原创 2020-04-08 15:10:22 · 150 阅读 · 0 评论 -
java —— this 关键字
@this关键字的用法什么时候用this?在程序产生二义性的时候,用 this 来指明当前对象;普通方法:this 指调用该方法的对象构造方法:this 指要初始化的对象注意!!!this 不能用于 static 方法中只是看概念的话还是不行撸代码:/** * @author DREAM_yao * this关键字的用法 *//*this:创建好的当前对象对象的地址...原创 2020-04-08 14:23:20 · 231 阅读 · 0 评论 -
java——构造器理解
构造器理解什么是构造器构造器也叫构造方法;用于对象的初始化;写构造器注意事项构造器名与类名一致;有返回值但是不能定义返回类型(返回值类型是本类,可以加一个空的return);构造器的调用通过 new 关键字调用,从而返回类的实例自我理解成类里面的成员变量,因为C语言学惯了,总有点不适应感悟:我也是通过1、2 段代码的对比理解了构造器附上代码1:/** * 测试构...原创 2020-03-31 16:31:02 · 175 阅读 · 0 评论 -
Java——类的定义
对象和类的关系:有一个学生 ,需要在表格上填写自己的信息 ,那么这个打印机就像一个类,打印出的表格就是一个对象,用类创建对象,学生填的信息 ,就是我所初始化的信息。类的组成:由 属性(也叫成员变量)和方法组成,如果单单只有一个属性 ,那类就像是一个结构体。public class SxStu {/*创建一个学生信息的类*/ int id; String name;/*成员变量 ,...原创 2020-03-24 19:20:54 · 240 阅读 · 0 评论 -
Java——写一个求和 “方法”
在c语言中叫做函数撸代码:import java.math.*;import java.util.Scanner;/*导入一个 math包 * BigDecimal 精确小数 * BigInt 超大数*/public class TestPrimitiveData { public static void main(String[] args) { TestPrimit...原创 2020-03-23 21:53:21 · 2113 阅读 · 0 评论 -
java——基本数据类型
一、整型bite 1字节 2^0short 2字节 2^1int 4字节 2^2long 8字节 2^3整形常量默认为int型,所以定义long 型时候要在常量后面加 L 或 l ,其他类型不用加 ,因为没有超int范围。二、浮点型float 4字节double 8字节赋值时可用科学计数法,也可用十进制。浮点型常量默认为double型,所以赋值f...原创 2020-03-22 16:09:09 · 130 阅读 · 0 评论 -
JAVA——桌球游戏(动画)
跟着视频敲得 ,虽然不是自己的思路 ,不过对代码多了一点了解:涉及到继承类主函数:创建一个BallGame对象,调用一个launchFrame函数 ;launchFrame函数:严格来说是方法 ,设定好一个窗口的信息,在窗口内开始画动画,只不过每次需要控制小球的位置(注意延时)paint函数:导入素材,改变小球位置package pro02;import java.awt.*;...原创 2020-03-20 17:20:25 · 395 阅读 · 0 评论 -
java 环境变量配置与第一个程序运行
从开始下载jdk,到运行出java第一个程序 ,花了5天时间 ,不过我相信万事开头难 ,以后会越来越好的 ,加油!jdk的下载:在oracle官网上即可下载,jdk安装包,下载完以后运行安装 ,路径默认c盘 ,我没有改 ,因为改了就安装不了(对于我来说);了解了java的跨平台性以后,可以知道 .java文件先编译成 .class文件(字节码文件),然后在虚拟机运行。JDK包含:J...原创 2020-03-19 08:28:37 · 271 阅读 · 0 评论