java基础杂记

java杂记

我最近在找工作,要复习java基础和之前学过的一些知识,看过之前在培训班学习时记的笔记,发现其中的一些知识点还是蛮重要的,因此准备把自己记的笔记上传到博客上,以后便可在乘车之类的闲暇时间来看看了。希望也能对其他人有些许的帮助。

基础杂记

以下为Java基础的杂记,是刚开始学习时记的散装知识点:

  1. java8种基本类型,5种引用类型:类,接口,数组,枚举,标注;
  2. 面向对象的特征
    封装:属性私有化,方法公开化,实现序列化。
    抽象:找出事物的共性,并将其归为一个类。
    继承:单继承,接口可多继承
    多态:依靠父类或接口定义的引用变量可指向子类或其实现类的实例对象
  3. eclipse快捷输入提示设置
    window–>preferences–>java–>Editor–>Content Assist
  4. 取计算机当前月份:
    Calendar c = Calendar.getInstance();
    int month = c.get(Calendar.MONTH+1);
    
  5. 读取随机数
    	Random num = new Random();
    for(int i = 0;i < 10;i++) {
    		System.out.println(num.nextInt(100));//括号内100限定范围
    	}
    
  6. 代码调试:
    断点:程序终端执行的标志(双击代码行号,重复操作取消)
    快捷键:单步执行:F5步入;F6步进;F7步出
    中断调试:Ctrl + F2
    继续执行:F8 到下一个断点停止
  7. 读取键入的字符
	import java.util.Scanner;
	
	Scanner sc = new Scanner (System.in);  
	char char1 = sc.next().charAt(0);
  1. for each(增强for循环)[只能打印出数组中的元素,不能访问下标]
	for(int i : arry){
		system.out.println(i);
	}
  1. 读取键入的字符串:
	import java.util.Scanner;
	
	Scanner sc = new Scanner(System.in);
	String name = sc.nextLine();//用sc.next()读取也是正确的,line,遇到enter键终止,可以读取空格
  1. 比较字符串:
	if(names[i].equals(name)){		//比较数组names[i]是否与name的值相同
	
	}
  1. ASCII码相关
    英文字母的ASCII码:大写:65–90 小写:97–122
    中文的ASCII码范围:第一个字节范围0x81–0xfe 第二个字节范围0x40–0xfe(一个中文占两个字节范围)
  2. java的数学数学函数:
名称
平方根Math.sqrt(x)
幂运算Math.pow(x,a) 返回结果为double型
整数取余floorMod(x, a)
PIMath.PI
EMath.E
舍入运算Math.round(x) round方法的返回结果为Long类型
  1. 抽取方法:选中将要封装的代码块,按住Alt + Shift + m 可将代码块抽取出来封装成函数
  2. static调用方法:使用类名称调用(在本类中调用可以省略类名)
  3. 数组工具类:
名称含义
Arrays.sort(a)对数组a进行升序排序
Arrays.toString(a)将一维数组转化为字符串输出
Arrays.deepToString(a)将二维数组转化为字符串输出
int[] arr1 = Arrays.copyOf(a, 5);后一个参数为新数组的长度
Arrays.fill(a, 100);将数组a的元素设置为100
Arrays.binarySearch(a,45)在数组a中查找45(要先对数组进行排序)
int[] arr1 = Arrays.copyOfRange(a,3,6)复制数组a的第3号元素开始,到第6号元素结束(不含)到arr1中
  1. 创建变量时,不带小括号为属性,带小括号为方法,对象
  2. 对象是类的实例,类是对象的抽象,集合
  3. 变量私有化之后,想要使用时要先将成员方法公开化(set:传输和get:获取)
    当想要运行含有私有化数据的函数时,传输数据时用set;想要得到私有化的数据时,用get
  4. 构造函数:
    1)默认构造函数不带参数
    2)构造函数名必须和文件名一致
    3)构造函数没有返回值
    4)构造函数不能用return返回具体的值,但可以用return退出方法
  5. this关键字:
    1)方法中局部变量和成员变量重名,想调用成员变量就可以使用 this.变量名 形式访问成员变量
    2)在方法中要将调用该方法的对象作为参数传递给另一个方法时,可以将 this 作为实参传给该方法
    3)在内部类中调用外部类的成员时,需要使用 外部类名.this.成员名 形式访问
    4)构造函数在实例化对象时被JVM自动调用,在程序中调用构造函数,要用 this(参数列表) 来调用【必须放在第一行】,不能像调用其他方法一样
  6. 访问修饰符:
    1)public:所有类都可以访问
    2)private:只能在本类中访问
    3)protected:在同类或者子类(其他包)可以被访问
    4)缺省:包访问权限,只能在同包中使用
  7. 基本数据类型作为参数传递时,不会改变原有变量,不会受到影响;引用类型作为参数传入类型时,传入的是该对象的引用,在函数中发生改变后,原实参也发生相应的变化
  8. static关键字的使用:
  • 1)静态变量:在希望属性被所有对象共享,需要加上static 对象.变量名或类名.变量名【静态变量可以被赋值修改】调用
    • 修饰变量时,只能用于修饰成员变量,不能修饰局部变量
  • 2)静态方法:static修饰方法 类名.静态方法名或对象.方法名调用
    1. 静态方法在类加载后就可以调用;
    2. 静态方法不能直接调用外部的非静态成员属性,方法(若想调用,可用new 类名. 非静态方法名 调用);
    3. 静态方法不能使用this关键字
    4. 使用场景:通常作为工具方法或一个可以产生对象的方法被声明,目的是为了让调用者更加方便,不必创建对象
  • 3)静态代码块:用static修饰的代码块。
    • 由于类只加载一次,所有静态代码块只会执行一次。通常会用静态代码块对类的成员变量进行初始化
    • 静态代码块的注意事项和静态方法类似
  1. 格式化:
	int cnt = 0;
	String str = String.format("%05d",cnt++);	//把cnt占5个字节,不足的左侧用0补齐,再将其格式化成字符串格式
  1. 对象初始化: 先父后子,先静后动
  2. 对象的生命周期:创建 应用 不可见 不可达 收集 终结 空间重新分配
  3. 垃圾回收机制GC:只要内存没有撑满,不会立刻清理
		protected void  finalize() throws Throwable(){
			super.finalize();//实现资源清理工作,Gc在回收前调用本行代码
			System.gc();	//对象进行清理
			//一般不要显示调用System.gc(),尽量减少临时变量(匿名对象:没有赋值)使用,对象不用时,最好显示置于null
		}
  1. 以下对象没有指向(垃圾回收器会视情况将其回收):
  • 一次性的;如new Cat();
  • 不想要的:emp = null;
  • 被抛弃的:
Cat c2 = new Cat();	
c2 = new Cat("122", "1233", "233", "344",);	
//前一句程序被抛弃了
  1. 组合设计模式:当我们定义一个类时,需要使用另一个类的方法属性时使用,把被使用类当作使用类的成员属性

由于知识点过多,我决定把txt文件上传,毕竟还是要以找工作为先


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值