Java基础知识
等待的疲倦
本科自动化,硕士双控,研究范围广泛,课题为医疗机器人,学习过C++,目前对Java感兴趣
展开
-
Java异常处理
Java异常处理程序出现问题后,异常机制提供了程序退出的安全通道,程序控制权转移到了异常处理器。程序错误分类① 编译出错:编译程序能够自己发现,并且提供错误的原因和位置;② 运行时错误:程序运行后,运行环境发现了不能执行的操作。③ 逻辑错误:程序没有按照预期的逻辑执行(eg:1 / 0,异常)(1)Exception:1)运行时异常(RuntimeException,是程序员的问题);2)非运行时异常(编译异常:IO异常、SQL异常)(2)受查异常与非受查异常:受查异常可用try…ca原创 2020-06-10 22:35:25 · 149 阅读 · 0 评论 -
Java用swap()交换元素——传参需要传引用类型变量!
要点:Java对普通类型的变量是不支持引用传递的!即下列是有问题的:public static void swap(int i,int j){ int temp = j; j=i; i=temp;}public static void main(string[] args){ swap(a[i],a[j]);}——错误!【解决途径】:可通过...原创 2020-04-24 22:19:27 · 423 阅读 · 0 评论 -
IO流
IO的作用:处理设备之间的数据传输Java对数据的操作是通过流的方式,用于操作流的对象在IO包中(Java.io.*)流按照操作数据分为:字节流(二进制,处理图片等)、字符流(基于字节流,处理汉字)(为了方便处理文本数据:类似于字母映射ASCII表,汉字和二进制也有映射表GB2312(含几千字)+汉字映射表扩容GBK(含2万多字)。国际标准化组织将各国文字统一编排形成:unicode码表...原创 2020-04-14 21:48:45 · 85 阅读 · 0 评论 -
抽象类abstract
当多个类中出现相同功能,但是功能主体不同,这时可以进行向上抽取,只抽取功能定义,不抽取功能主体。——抽象 = 看不懂抽象类的特点:(1)抽象方法一定定义在抽象类中;(2)抽象方法和抽象类必须被abstract修饰;(3)抽象类不可以用new创建对象实例,因为调用抽象方法没意义!(4)抽象类中的抽象方法要被使用,必须由子类复写其所有的抽象方法后建立子类对象调用。如果子类只覆盖了部分抽象方...原创 2020-03-19 00:08:17 · 191 阅读 · 0 评论 -
Random类和UUID以及验证码的生成
Random:产生随机数UUID:通用唯一识别码目的是让分布式系统中的所有元素,都能有唯一的辨识信息。根据当前时间和电脑网卡,生成一段字符。//Radom类import java.util.*;public class ListError { public static void main(String[] args) { Random r = new Random();...原创 2020-02-24 14:27:59 · 1324 阅读 · 1 评论 -
System.currentTimeMillis()和日期Date类
(1)计算程序运行时间成本:import java.util.*;public class StringDemo{ static void testString() { long begin = System.currentTimeMillis();//时间戳 String str = ""; for(int i=0;i<=10000;i++) { str ...原创 2020-02-20 22:31:53 · 1464 阅读 · 0 评论 -
创建并调用工具类
(1)工具类:package 字符串;public class StringUtils {//Utils代表工具类 /* *设计一个方法, *给一个字符串判断是否为空, *空则返回false,不空就true */ //私有化工具类,不让外界来new这个类的对象 private StringUtils() { } static boolean hasLength(Str...原创 2020-02-20 21:03:15 · 2287 阅读 · 0 评论 -
String类常见操作(含动态字符串)
(1)字符串首字母大写:字符转为大写:toUpperCase();字符转为小写:toLowerCase();截取字符串一部分:substring(beginIndex,endIndex);//把单词首字母变成大写/*思路:(1)获取第一个字母;(2)把获取的第一个字母变成大写;(3)将后面的字母与其拼接*/import java.util.*;public class Stri...原创 2020-02-20 20:28:40 · 481 阅读 · 0 评论 -
泛型
设计泛型的原因:让集合记住其元素的数据类型,而不是统一当做Object类型处理,无需强制类型转换。一、编译时不检查类型导致的异常import java.util.*;public class ListError { public static void main(String[] args) { //创建一个计划只想要保存字符串的List集合对象 var strList =...原创 2020-02-14 16:27:20 · 84 阅读 · 0 评论 -
接口interface(多实现)
面向对象:3种类型:类、接口、枚举4个修饰符:private|protected|public、final、static、abstract5个成员一、概念接口相当于 是一个彻底抽象的类。接口体现的是一种规范——要暴露出来供大家遵守的,所以接口里的东西全用public修饰符(不写也默认有,通常都不写)[修饰符] interface 接口名 extends 父接口1,父接口2,…{/...原创 2020-03-19 21:51:34 · 1295 阅读 · 0 评论 -
==与equals()方法的比较
Java判断两个变量是否相等有两种方式:==运算符 和 equals()方法public class 判断相等{ public static void main(String[] args) {//"==":如果两个变量是基本类型变量,且都是数值类型(类型不需要相等),则只要变量相等,就返回true //数值类型:整数类型和浮点类型,整数类型:byte、short、int、long、...原创 2019-11-30 16:20:36 · 158 阅读 · 0 评论 -
toString方法(类名@hashCode)
(参考自疯狂系列,李刚视频教程)写一个类,再输出该类的对象:class Apple1 //类默认继承Object{ private String color; private double weight;//实例成员变量//构造器 public Apple1()//无参构造器 { } public Apple1(String color ,...原创 2019-11-07 23:05:17 · 701 阅读 · 0 评论 -
局部变量与成员变量
先看位置,再看是否有static修饰。成员变量:可以不需要显式地指定初始值类变量:属于类本身,当系统初始化类的时 候,就会初始化实例(对象)变量:实例变量属于对象本身,每次创建对象,都会为该对象的实例变量分配空间,并初始化eg:public class Computer{ String color;//不带static的是实例变量 int price;//实例变量属于对象本身...原创 2019-11-05 10:58:20 · 147 阅读 · 0 评论 -
static修饰符
一、概念static并非静态的意思,static是类的意思,有static的成员是类成员,没有static的成员属于实例成员。——static是用来修饰成员的!static可修饰的成员包括:成员变量、方法、(不包括构造器,构造器是用来初始化对象的,new)、初始化块、内部类。(五大成员中的四个)类变量和实例变量可以统称为成员变量**(成员变量是在类范围内定义的变量,局部变量是在一个方法内定...原创 2019-11-04 20:43:10 · 415 阅读 · 0 评论 -
基本类型自动装箱(包装类)
Java的8个基本类型:byte、short、int、long、float、double、char、boolean这8个基本类型都不能当做对象来使用,只有引用类型可以。而且,也不能接受null值,null只能赋给引用类型。即:int i = null;是错的为了解决这个问题,Java为这8个基本类型提供了对应的包装类——可将他们包装成对象。8个包装类如下:byte - Bytesho...原创 2019-11-04 16:49:16 · 288 阅读 · 0 评论 -
Java数组的定义与使用
一、定义数组:int[ ] arrayName;二、初始化数组:数组必须初始化,分为两种初始化方法:(1)静态初始化:// 数组引用变量(栈) 数组对象(堆) int[] prices = {1,2,3,4,5};//静态初始化int[]是一种数据类型,可用于定义变量,创建int[]类型对象也是创建数组。(2)动态初始化:int[] price...原创 2019-10-28 16:02:00 · 138 阅读 · 0 评论 -
使用Array工具类来操作数组
参考《疯狂JAVA讲义》P103-104import java.util.Arrays;public class ArrayTest{ public static void main(String[] args) { //int[] a={3,4,5,6}; //int[] a1={3,4,5,6}; var a=new int[] {3,4,5,6}; var a1=n...原创 2019-10-28 15:13:08 · 128 阅读 · 0 评论 -
类的继承(extends)与重写(Override)
面向对象的三大特征:封装、继承、多态使用***extend***作为继承的关键字,如同于:扩展——子类继承(扩展)了父类,可以获得父类的全部信息。即:public class 子类 extend 父类{var 对象 = new 子类();}一、创建父类:public class Fruit{ public double weight; public void info()...原创 2019-10-28 11:13:26 · 2476 阅读 · 0 评论 -
方法的重载
方法重载:在同一个类中有多个同名的方法,但形参列表不同eg:public class ShopCart //定义类{ public void show(String item)//方法 { System.out.println("当前物品为:" + item); } public void show(String item , double price)//形参列表不同 ...原创 2019-10-27 21:33:58 · 125 阅读 · 0 评论 -
Java数据结构之根据输入判断素数
import java.util.*;public class isPrime{ public static boolean prime(int N) { if(N<2) { return false; } for(int i=2;i<N;i++) { if(N%i==0) { return false; } } r...原创 2019-10-25 21:24:15 · 196 阅读 · 0 评论 -
JAVA——Scanner输入
一:由键盘输入,显示在屏幕上:import java.util.*;public class ScannerKeyboard { public static void main(String[] args) { var a=new Scanner(System.in);//System.in代表标准输入,即键盘输入 while(a.hasNext()) { Sys...原创 2019-10-25 17:00:19 · 398 阅读 · 0 评论 -
编译型语言和解释型语言
(1)编译型语言:使用针对特定平台的专门的编译器,将源代码一次性编译成可执行的机器码,之后再执行。这包括了“编译”和“链接”两个步骤。“链接”是把各个模块的机器码和库包装起来生成最终的可执行性程序。这个可执行性程序可以脱离开发环境在特定平台上独立运行。优点:运行效率高(因为是一次性编译后再运行的)缺点:跨平台性差(可移植性差),若要移植,则需要用针对特定平台的编译器重新编译源代码。代表语...原创 2019-08-14 11:21:31 · 224 阅读 · 0 评论 -
Java相关名称与汇编指令
Java版本:JavaSE(Standard Edition):标准版,定位在个人计算机应用。(开发计算机桌面应用,桌面系统应用发展的不好,效率不高,远不如C++),必须先学SEJavaEE(Enterprise Edition):企业版,定位在服务器端的应用,企业的后台服务器。(就业的首选)JavaME(Micro Edition):微型版,定位在消费型电子产品的应用上(用的非常少,逐步消...原创 2019-08-14 13:43:48 · 227 阅读 · 0 评论 -
JAVA数据类型及其转换
(1)Java10开始可以使用var定义局部变量,var是一种动态类型,由于Java是一种强类型语言,所以变量的类型是通过所赋初值来判断的。var a=5; System.out.println(a);此时a的变量类型被默认为整型,若把float型数据赋给a,则编译会报错。如a=1.5;//报错(2)范围小的数据可以向范围大的自动转换:int a=5;float b=a;System....原创 2019-08-27 10:20:30 · 131 阅读 · 0 评论 -
JAVA循环语句归纳
结束循环的方法:(1)break:1)单独的一个break可结束其所在的循环2)标签+break可终止外层循环:class VarTest{ public static void main(String[] args) { outer: for(var i=0;i<5;i++) { for(var j=0;j<3;j++) { Sy...原创 2019-09-02 21:28:23 · 140 阅读 · 0 评论 -
Java变量与对象的内存
一、定义数组:int[ ] arrayName;二、初始化数组:数组必须初始化,分为两种初始化方法:(1)静态初始化:int [] prices={1,2,3,4,5};//静态初始化int []是一种数据类型,可用于定义变量,创建int []类型对象也是创建数组。(2)动态初始化:int [] prices=new int [5];//动态初始化,只指定长度,不赋值,默认0...原创 2019-09-07 21:14:14 · 241 阅读 · 0 评论 -
Java类的定义与使用详解
类可以被认为是一种自定义的数据类型,使用类定义的变量都是引用变量。Java支持面向对象的三大特征:封装、继承、多态。——使用访问修饰符来实现封装:private、protected、public——使用关键字extends来实现子类继承父类——...原创 2019-09-13 10:39:30 · 3246 阅读 · 0 评论 -
Java中对象的this引用
this关键字的作用:让类中的一个方法去访问该类里的另一个方法或实例。(因为现实中一个方法经常会依赖于另一个方法,所以this关键字很重要)用法:this可出现在非static的方法、构造器中。——出现在非static的方法中,this就代表该方法的调用者——出现在非static的构造器中,this就代表该构造器的调用者(谁调用该方法/构造器,this就代表谁!)(1)调用方法写一...原创 2019-09-25 18:42:40 · 491 阅读 · 0 评论 -
Java方法使用详解
(一)方法调用(1)方法类似于函数,但是与函数不同:方法必须定义在类里面(2)定义在类中的方法,从逻辑上来看,——如果有static修饰,该方法属于类本身,应该用类调用——如果无static修饰,该方法属于对象本身,方法不能独立执行,方法一定要有调用者【规则】如果调用同一个类中的方法,可以省略调用者,系统会添加默认调用者1)如果该方法是无static修饰的,则会添加this作为默认调...原创 2019-09-25 21:14:56 · 325 阅读 · 0 评论 -
JAVA垃圾回收器
Java不同于C/C++,不需要程序员进行内存回收,Java的内存分配和回收是有JRE后台自动进行的,这种机制称为:垃圾回收(GC),JRE提供的后台线程在CPU空闲或内存不足时进行回收。JRE中的JVM有一个由垃圾回收器管理的堆内存。引用变量是普通变量,定义时在栈中分配内存*,引用变量在程序运行到作用域外释放。而数组&对象本身内存在堆中分配,即使程序运行到使用new产生数组和对象的语句所在地代...原创 2019-08-19 09:42:31 · 135 阅读 · 0 评论