Java基础,笔记!

手把手教你用EG2153搭建开关电源:SOP-8封装驱动芯片的5个设计技巧 本文详细介绍了使用EG2153自振荡半桥驱动芯片搭建开关电源的五个核心设计技巧。内容涵盖从深入理解芯片工作机制、频率编程计算误区、SOP-8封装的热管理方案,到死区时间评估与外部保护电路设计,以及实战调试与故障排查指南,旨在帮助工程师实现稳定可靠的小功率电源设计。 阅读详情


数据的输入
利用扫描仪Scanner进行数据输入

 (1)放在类声明之前,引入扫描仪
     imprort java.util.Scanner;
 (2)声明一个新的扫描仪
     Scanner in;
 (3)赋值
     in =new Scanner(System.in)(in是固定的)
     Scanner input=new Scanner(System.in);
  (4)使用扫描仪
     整型数据输入:in.nextInt()来接收
     双精度小数输入:in.nextDouble()
     字符串输入:in.next()
import java.util.Scanner;(这个包中包含了接口)
public class teke{
 public static void main(String []args){
  Scanner k=new Scanner(System.in);
  System.out.println("请输入你的名字:");
  String name=k.next();
  System.out.println("请输入你的年龄:");
  int age=k.nextInt();
  System.out.println("名字:"+name);
  System.out.println("年龄:"+age);
}
}
boolean(布尔)类型两个字节
boolean类型的值:
   真:true
   假:false
public class teke{
 public static void main(String[]args){
       int a=2;
 int b=2;
 boolean flag;
 flag=a!=b;
 System.out.println(flag);
  } /*输出false*/
}
逻辑运算符:与&& 或|| 非!
import java.util.Scanner;
public class teke{
 public static void main(String[]args){
  Scanner in=new Scanner(System.in);
  System.out.println("请输入java成绩");
  double java=in.nextDouble();
  System.out.println("请输入sql成绩");
  double sql=in.nextDouble();
  if(!(java>90)&&sql>90){
  System.out.println("奖励");
             }
              System.out.println("测试"); 
}
}
逻辑运算符只能对boolean类型的数据进行操作

equals判断字符串
sex.equals("男")
  sex.hashCode("男");哈希码是否相同
分支结构:
switch() case default
switch中只能执行字符的和整型

闰年:此年能被4整除&&不能被100整除||能被400整除的年份


Random产生随机数
格式:import java.util.Random;
      Random xx=new Random();
      int number=xx.nextInt(10);
列如:
(2:)
 import java.util.Random;
public class take{
 public static void main(String[]args){
      Random k=new Random();
  int number=k.nextInt(10);//表随机数的范围为0到10
  System.out.println("随机数为"+number);
    
   }
}
(2):
public class random_1{
 public static void main(String[]args){
  System.out.println(Math.random()*10);//可产生double型的数值
 }
}
//支持多线程,多线程是为了使得多个线程并行的工作以完成多项任务,以提高系统的效率。线程是在同一时间需要完成多项任务的时候被实现的。
 
i++先使用后对自身加1
++i先自身加1后使用

累加用while


循环体内声明的变量叫局部变量只对循环体有用
对全局没用
do while
列如:
   do{
   循环操作
   }
  while(循环条件);
while
列如:
 while(循环条件){
 循环操作
 }

eclipse是开源的
myeclipse适用于企业

src存源文件
对十进制取摸1234567%10的值为7
将数值取反:
while(number!=0){
  int temp;
  temp=number%10;//取数值的最后一个数开始,取个位上的数
  System.out.print(temp);
  number=number/10;//取除最后一个数
 }
因为temp为整型所以temp只会记录整数不会有小数

for循环:
for(参数初始化;条件判断;更新循环变量){
循环操作;
}
while 和 for 的对比:
 int i=0;
 /*while(i<100){
  System.out.println(i+"好好学习");
  i++;
 }*/
 //for循环
 for( i=0;i<100;i++){
  System.out.println(i+"好好学习o");
 }
输入的数值内,有那些数相加为输入的值列如:
import java.util.*;
public class A4_16 {
public static void main(String[]args){
 System.out.println("请输入一个整数");
 Scanner k=new Scanner(System.in);
 int number=k.nextInt();
    for(int i=0,j=number;i<=j;i++,j--){
     System.out.println(i+"+"+j+"="+(i+j));
    }
}
}
(daske 密码luoluo)


continue 表示继续下一次循环
列如:
import java.util.*;
public class conn{
 public static void main(String[]args){
     Scanner k=new Scanner(System.in);
  while(true){//表示条件成立
   System.out.println("请输入密码");
   int number=k.nextInt();
   if(number!=123)
   {
    continue;
    }
    break;
   } 
  System.out.println("密码正确");
  }
 }

while 先判断,再执行          }用于循环次数不确定的情况下
do_while 先执行,后判断

for 先判断,后执行:用于循环次数确定的情况下

java的内存:
1、jum java虚拟机,在安装jdk时就有了,虚拟机是通过软件来实现的
2、java编译后的class文件就是放在java虚拟机上运行的
3、栈区(stacksegment)存在函数的参数值,局部变量,在超过这个变量的作用域是就会被系统自己动释放掉存在于jum内存中。
优点:存取速度比堆快
缺点:存在栈中的数据大小 与生存期必须是确定的,无灵活性
4、堆区(heapsegment)存放由new创建的对象和数组,jum不定时查看这个对象,如果没有引用指向对象就回收
例如:
Scanner k=new Scanner (System.in);
优点:可以动态分配jum内存
缺点:要在运行时分配jum内存 速度慢
5、静态区
6、代码区

栈内存:存放了基础类型如:int,double和引用内存如:scanner k
堆内存:存放new出的对象
声明数组: int[] a;
分配空间 a=new int[5];
若int型没有赋值 则它的默认值为0.


数组的声明: 
1、使用数组的方式
 int arr[];
 arr=new int[5];
 arr[0]=90;
2、使用数组的方式
 int[] arr=new int[5];
 arr[0]=90;
3、使用数组的方式
 int[] arr={23,3,43,5} ;
  int[] arr=new int[]{23,2,4};

进行升序排列:
  用java.util.Arrays类
  java.util包提供了许多存储数据的结构和有用的方法
  Arrays类提供了许多方法操纵数组,列如:排序,查询
  Arrays类的sort()方法:对数组进行升序排列
  Arrays.sort(数组名);

降序:
 例如:
 arrays.sort(arr);
 for(i<arr.length-1;i<=0;i--)

数组的赋值:

public class A5_10 {
public static void main(String[]args){
 int[] arrA={2,4,3,5,7,34};
 int[] arrB=new int[arrA.length];
 for(int i=0;i<arrA.length;i++){
  arrB[i]=arrA[i];
 }
 for(int i=0;i<arrA.length;i++){
 System.out.print(arrB[i]);}
}
}
查找算法:
(A5_11)
插入排序:
import java.util.Scanner;
public class A5_12 {
 public static void main(String[]args){
  Scanner k=new Scanner(System.in);
  int[] arr={18,22,23,24 };
  System.out.println("请输入你要插入的数值");
  int num=k.nextInt();
  arr[arr.length-1]=num;
  for(int i=arr.length-1;i>0;i--)
  {
   if(arr[i]<arr[i-1]){
    int temp=arr[i];
    arr[i]=arr[i-1];
    arr[i-1]=temp;
  }else{
   break;
  }
   }
  for(int i=0;i<arr.length;i++){
   System.out.println(arr[i]);
  }
 }
}
插入排序是从最后一个数开始比较的
冒泡排序是从第一个数开始比较的
两两比较:
public class A5_13 {
public static void main(String[]args){
 int[] arr={23,12,34,32,11,37};
 for(int i=0;i<arr.length-1;i++){
  for(int k=0;k<arr.length-1;k++){
   if(arr[k]>arr[k+1]){
    int temp=arr[k];
    arr[k]=arr[k+1];
    arr[k+1]=temp;
   }
  }
 }
 for(int i=0;i<arr.length;i++){
 System.out.println(arr[i]);
 }
}
}

选择排序比冒泡排序简便:
一一比较,从前往后
A5-15

二维数组,就是数组的数组。
int arr[][]={{1,2},{3},{7,33,32}} 32的下标是2,2

一维数组:
int[] arr=new int[6]//一维数组
int[][] arr=new int[5][7]//二维数组

二维数组可以看成以数组为元素的数组。
int arr[][]={{2,1,4,5},{32,34,55}};

java中多维数组的声明和初始化一样,应按从高维到低维的顺序进行,列如:
int a[][]=new int[2][];//有两个一维数组
a[0]=new int[2];//第一个一维数组可以存放两个数
a[1]=new int[4];//第二个一维数组可以存放四个数
int t[][]=new int[][4];//非法


stack相当于栈内存存放局部变量的
heap相当于堆内存new

程序执行过程:

1.load到内存区        2.找到main方法开始执行 :内存      3.执行过程中的内存管理
|程序|:硬盘------------》|代码|《-------------------|操作系统码|---------------》1.|heap:       |new出来的东西
2.|stack:      |局部变量
3.|data segment:|静态变量字符串常量
4.|code segment:|存放代码

类名的首字母大写
建立类:
public class person{
  String name;
 String sex;
 /*无返回无参*/
 public void eat()//方法定义格式,括号里写参数{
  System.out.println();
 }
}
必须使用new关键字创建一个对象
使用对象属性(对象名.成员变量)
使用对象方法(对象名.方法名)
同一个类的每个对象有不同的成员变量的存储空间
同一个类的每个对象共享该类的方法

get可以取值 set可以赋值
成员变量是声明在类中的。

成员变量类型 : byte,short,int,的默认值为0
         long的默认值为oL
  char 的默认值为‘\u0000’
  flot 的默认值为 o.of   
  double 的默认值为o.oD
  boolean 的默认值为false
所以的引用类型为:null
return:返回方法指定类型的值(这个值总是确定的),结束(方法)的执行
类的默认方法:toString()
public公共的都可以访问
面向对象三大基本特征之一封装:

private做设置私有的在自己的类可以访问,别的类不可以

set给成员属性

get获取成员属性

封装的做法:修改属性的访问权限来限制对属性的访问。并为每一个属性创建一对取值方法和赋值方法,用于对这些属性的访问

构造方法:
使用new+构造方法 创建一个新的对象
构造函数的定义在java类中的一个用来初始化对象的函数
构造函数与类同名且没有返回值


java的核心知识:


java发展历程-—————-------—>java开发环境搭建————→基础程序设计
                |               ↓
             java新特性←――|   | 数据类型||控制语句||数组||方法| 
        ↓  | 
|泛型|枚举|装箱,拆箱|可支参数|Annotation|
      |————→面向对象程序设计
      |eclipse| ←—— |  ↓
      ↓    | |封装|继承|多态|设计模式|异常|包|     |
   |JDT|JUnit|CVS|         |——————→应用程序开发
           ↓
     |连接Oracle|←|JDBC|类|集|二叉树|链表|类库|多线程|Io|反射|网络| 


面向对象概述:
面向过程思想:强调的是功能和行为。
面向对象思想:将功能封装进对象,强调具备功能的对象。

面向对象的三个基本特征:封装 继承 多态
 写在class里的是成员变量,写在方法里的是局部变量
关键字:
this 用来指当前对象

学习方法:
1.基本功 背程序。多敲,多写
2.坚持不懈
3.多积累问题
4.多看书thinking injava()java编程思想
5.温故而知新
6.多找题目来做
7.多交流

1.类名首字母必须大写
2.方法和属性必须小写
类名:StudentAdmin 方法或属性studentNameName

static 可以修饰类中的属性成员变量使之成为静态成员变量
它的存储方式是:从对象的取出相同所 访问的属性,然后在同时访问它

列如:
public() class A6_33{
 pbulic static void main(String[]args){
 Student A=new Studnet();
 A.country="中国";
 Studnet b=new Student();
 System.out.println(B.country);
 }
}
/*static关键字
 作用: 是一个修饰符,用于修饰成员(成员变量,成员方法)被
  static修饰后的成员变量只有一份,当成员被static修饰之后
  多了一种访问方式,除了可以被对象调用之外还可以被类名直接调用
  (类名.静态成员)
 static的特点:
  1.随着类的加载而被加载
  2.优先于对象的存在
  3.被所以的对象所共享的
  4.可以直接被类名所调用
 存放位置:
  类变量随着类的加载而存在于data内存区
  实例变量随着对象的建立而存在于堆内存。*/
class Studnet{
 String name;
 int age;//非静态成员变量叫实例变量
 static String county;//静态变量(类变量)
}
 主函数(主方法)
1.public (访问修饰符,公共的)代表该类或者函数访问权限是最大的
2.static  代表主函数随着类的加载而存在
3.void    代表主函数没有具体的返回值
4.main   不是java中的关键字,它是一个特殊的单词,它能被jvm(java虚拟机)所识别
5.String[] args 函数的参数,参数类型是一个字符串数组,该数组的元素是字符串

静态应用工具类:
 每一个应用程序都有共性的功能,可以将这些功能进行抽取,独立封装。
 以使复用对象的作用:对象是用来封装数据的。
classpath:主要是在执行CMD的时候起作用,告诉jvm类的所保存的路径
path:主要功能是设置jdk的可执行命令
文本文档的生成:
 f:ArrayOperate 列文
文档提取:在CMD 输入 f:javadoc -d mydoc -author -vaersion ArrayOperate.java
//mydoc:自创文件夹名装文本文档 author:表示作者 vaersion:表示版本

静态代码块:列子:daima.java
静态代码块
格式:
static{
 静态代码块中的执行语句
}
特点:随着类的加载而执行,并且只会执行一次,并且还优先于主函数。
作用:用于给类进行初始化


对象初始化过程:如图:
1.因为new Studnet()用到了Studnet类,所以会把它从
硬盘上加载如内存。
2.如果有static静态代码块就会随类的加载而执行,还有
静态成员和普通方法也会随之类的加载而被加载。
3.在堆中开辟空间,分配内存地址。
4.在堆中建立对象属性,并同时对属性进行默认初始化
5.对属性进行显示初始化.
6.执行构造代码块,对所有的对象进行初始化。
7.执行对应的构造函数,对对象进行初始化。
8.将内存地址给new出来的对象(给栈中的变量)。

设计模式:针对此类问题最有效的解决方法
java有23种设计模式:解决一个类只在内存中存在一个对象

如何让一个类在内存中只存在一个对象?
1.禁止其他的应用程序,通过此类来创建对象
2.既然外部不能通过此类创建对象了,我们要用对象,就可以再本类中建立本类对象
3.为了其他应用程序能够访问到本类里面创建的对象,我需要对外界提供一种访问方式

如何用代码体现出来:
1.私有化构造函数
2.在本类中创建本类的对象
3.在类中创建返回对象的方法以用来实现对外界的访问

继承概念1:
1.提供了代码复用性,简化了代码
2.让类与类之间产生了继承关系,才有了后面的多态特性的存在
注意:千万别为了获取其他类的功能简化代码,而建立继承关系,必须要
类与类之间的继承关系。extends继承 
继承概念2:
子类拥有父类的成员,子类不能拥有父类中被private修饰后的成员

java多层继承 在多层继承中最下层的子类拥有整个继承体现的成员,
最上层的父类里面定义所以子类的共性描述

java中不支持多继承,但c++可以,java只支持单继承。
因为多继承存在安全隐患,当多个父类定义了相同的成员,
子类对象不确定运行哪一个。java保留这样机制,并用了另
一种方式来体现,多实现。
例如:
class Animal{//父类
 String name="你是猪";
 int age=3;
 void ty(){
  System.out.println("我们都是动物");
 }
}
class Dog extends Animal{//子类
 void dg(){
 System.out.println("我们都是狗");
}
}
class Cat extends Dog{//子类
 void ct(){
 System.out.println("我们都是猫");
}
}
class Pig extends Cat{//子类
 void pg(){
 System.out.println("我们都是猪");
}}
public class Student{
 public static void main(String []args){
  Cat cat=new Cat();
  cat.ty();
 }
}
子父类成员特点:
成员:
1.成员变量
2.函数
3.构造函数
变量:
this 代表当前对象的引用 this.变量 首先在本类中找所需要的这个变量
如果没本类没有,再到父类中找。
super 用于访问当前对象的父类成员,super.变量 直接在父类中找所需要的变量
例如:
class Person{
 String name="小风";
}
class Student extends Person{
 String name="小明";
 void show(){
  System.out.println(this.name);
  System.out.println(super.name);
 }
}
public class JC{
 public static void main(String[]args){
  Student stu=new Student();
   stu.show();
 }
}
2.函数
当子类中出现和父类中一样的函数时,当子类对象调用该函数,运行的是子类中的函数,如同父类中的函数被覆盖了一样,这种情况就是函数的另一种特性:重写(重载)
注意:
1.子类覆盖父类时,必须要保证子类权限大于等于父类,才可以覆盖,否则编译出错
2.访问权限修饰符:public>default(默认)>private 成员前面没加任何访问权限修饰符默认权限就是default
3.静态的函数只能覆盖(重写)静态的
class Animal{
 static String type;
 static void  run(){
  System.out.println("我在奔跑");
 }
}
class Cat extends Animal{

}
class Dog extends Animal{
  static void  run(){
  type="小风";
  System.out.println(type+"疯狂的奔跑");
 }
}
public class A6_48{
 public static void main(String[]args){
  Cat c=new Cat();
  c.run();
  Dog d=new Dog();
  d.run();
 }
}
有了子父类之后构造函数的特点:
在对子类对象进行初始化的时候,父类的构造方法也会运行,那是因为子类的构造函数默认
第一行有一条隐式的语句 super();

子类每个构造方法第一行都有一个隐式的super();
例如:
class fu{
 String name;
  fu(){
  System.out.println("父类构造方法");
 }
  fu(String k){
  System.out.println(k+"父类构造方法");
 }
}
class zi extends fu{
 zi(){
 super();
  System.out.println("子类的构造方法");
 }
 zi(String f){
  super("小明");
  System.out.println(f+"子类的构造方法");
 }
}
public class A6_49{
 public static void main(String []args){
  zi z=new zi("小月");
   
 }
}

对象的转型:
 1.对象的向上转型 子类转成父类 默认进行
 2.对象的向下转型 父类转成子类 强制进行

关键字:instanceof 测试左边的对象是否是右边类的实例
 如果是返回TRUE 如果不是返回false
例如:
class Animal{
 void sleep(){
 System.out.println("睡觉(~﹃~)~zZ");
 }
}
class Cat extends Animal{
 void cath(){
  System.out.println("吃鱼(⊙_⊙)?");
 }
}
class Dog extends Animal{
 
}
public class A6_50{
 public static void main(String[]args){
  Animal a=new Dog();//向上转型
  Dog s=(Dog)a;//向下转型
  //s.sleep();
  System.out.println(s instanceof Animal);
  
 }
}
ooP三大特性:封装,继承,多态
多态:可以理解为事物存在的多种体现形态
动物:猫,够,猪
人物:男人,女人

1.多态的体现
父类引用指向子类对象

2.多态的前提
(1)必须是类与类之间存在关系,可以是继承关系 也可以是实现关系
(2)必须得有重写

3.多态的好处
大大提高了程序的可扩展性

4.多态的弊端
提高程序的可扩展性,只能用于父类引用,访问到父类中的成员

5.多态成员变量的特点:
1.编译期间:参阅的是引用型变量所属的类中是否有调用的方法
2.运行期间:参阅对象所属的类中是否有调用的方法
例如:
class Animal{
 void sing(){
  System.out.println("动物( ⊙ o ⊙ )啊!");
 }
}
class Cat extends Animal{
 void sing(){
 System.out.println("喵喵~");
 }
}
class Dog extends Cat{
 void sing(){
 System.out.println("嗷嗷~~~~");
 }
 void call(){
 System.out.println("hello");
 }
}
public class A6_51{
 public static void main(String[]args){
  //Cat c=new Cat();
  //function(c);
  Dog k=new Dog();
  function(k);
 }
 public static void function(Cat c){//Cat c=new Dog();
  Dog d=(Dog)c;
  d.call();
 }
}

匿名对象:没有名字的对象
匿名对象使用方式:
1.当对对象的方式值调用一次时,我们可以用匿名对象来完成,比较简化。
2.匿名对象可以被当做实参传递
例如:
class Car{
 void start(){
  System.out.println("汽车启动");
 }
}
public class A6_54{
 public static void main(String[]args){
  //new Car().start();调用方法
  print(new Car());
 }
 static void print(Car c){//实参传递
  c.start();
 }
}
一个特殊的类:

object:它是java中所以对象的直接或间接父类,也称:根父类(基类),它里面定义的功能是所以对象都应该具备的。

记住:当定义一个新类时,没有指明要继承某类,它就默认继承object类。

Object所以对象的父类:
java.lang.Object类中有toString方法

==和object里面的equals是一样的都是比较的内存地址是否一致

final(最终)是一个修饰符
1、final可以修饰类,函数,变量(成员变量,局部变量)
2、被final修饰后的类不可以被其他类继承
3、被final修饰后的函数不可以被重写
4、被final修饰后的变量不允许被再次赋值,并且在修饰的同时还要赋值,被final修饰后的变量我们称它为常量,常量的值不允许被改变
常量的命名格式:字母全部要大写,如果这个名字是由多个单词组成,则在单词之间用_隔开

class Cat{
  final  static String age="小月";//全局常量
 
 
 }
public class A6_54{
 public static void main(String[]args){
  Cat c=new Cat();
  Cat c2=new Cat();
  
  
 }

}
被public final static多个修饰符修饰的变量称为全局常量


/*
 需求:求一段代码的运行时间
 原理:结束时间-开始时间 System.currentTimeMillis()
 
 什么是模板方法设计模式:
 定义功能时,功能的一部分是确定,而确定的部分在使用不确定,
 那么这时就得将不确定的部分暴露出去,由该子类去完成
*/
abstract class Demo{
 void getTime(){
  long a=System.currentTimeMillis();
   function();
  long b=System.currentTimeMillis();
  System.out.println("运行时间"+(a-b));
 }
 public abstract void function();
 
}
class Test extends Demo{
 public void function(){
  for(int i=0;i<9999;i++){
  System.out.print("I LOVE YOU");
  }
 }
}
public class A6_60{
 public static void main(String[]args){
  Demo d=new Test();
  d.getTime();
 }
}
接口:初步理解,接口是一个特殊的抽象类,当抽象类中全部是抽象方法时,
可以通过接口的形式来体现。
class 用于定义类
interface 用于定义接口

接口中成员的格式:
public static final String NAME="小风";//全局常量
public abstract void show();//抽象方法
在接口中:可以直接定义成员,因为接口会自己动加上public static abstractfinal ,接口中没有构造函数

注意:
1、接口中只能出现public访问修饰符
2、接口不可以创建对象(内存中也没有对象存在),因为里面有抽象方法,需要被子类实现,子类对接口中的所有抽象方法实现后,子类才能够实例化,否则子类就是一个抽象类
3.在接口中实现就相当于继承implements=extends重写也叫实现
interface smoket{
 public static final String Name="小风";
  void show();
}
class Student implements smoket{
 public void show(){
  System.out.println("Hello");
 }
}
public class A6_61{
 public static void main(String[]args){
  Student s=new Student();
   s.show();
 
}}
java中没有多继承,但是有多实现:
类与类之间的关系:继承关系
接口与类之间的关系:实现关系
接口与接口直接的关系:继承关系
例如:
interface smoket{
 public static final String Name="小风";
 public abstract void show();
}
interface game{
 public void sing();
}
class Student implements game,smoket{
 public void show(){
  System.out.println("Hello");
 }
 public void sing(){}
}
public class A6_61{
 public static void main(String[]args){
  Student s=new Student();
   s.show();
 
}}
 
接口:提高了我们功能的扩展性,因为它降低了事物之间的耦合性(关系紧密程度)
接口好处:
可以多实现,也就是一个类可以实现多个接口
父类中定义的是多个类中共性的基本功能
接口中定义的是扩展功能

包(package)
什么是包呢?可以理解为文件夹
包的作用:
1、对类进行分类管理
2、给类提供了多层命名空间
注意:
1、类名的全称是包名.类名
2、定义包的语句一定要在代码的第一行

jar包 就是java中的压缩包
javac test.java 包名
jar

 字体:Window->preferences->General->Appearance->Colors and Fonts-> Basic->TextFont


异常捕获:用try catch 就可以避免没有出错的代码不被执行
try{  可能会出错的代码区 } catch(Exception a){

}
throws处理异常:
throws的处理方法是将异常抛给上一级处理,如果都不能处理,就抛给虚拟机处理,这个过程称为抛异常。这个处理方法适合比较严重的异常和程序员无法预料或无法完全避免异常发生的情况下。
import java.util.*;
public class luoluo {
  public  static void main(String []args){
  A a=new A();
  try{
  a.m();
  }
  catch(Exception e){
   System.out.println("请重新输入");
  }
  
  }
}
class A{
 public void m()throws Exception{
  Scanner k=new Scanner(System.in);
  System.out.println("请输入整数");
  int a=k.nextInt();
   int b=k.nextInt();
   int c=0;
    c=a%b;
    System.out.println(c);
 }
 
}
throws一般写在方法旁边,将扫描方法是否出错,出错将抛出异常

final:
类不能被继承,没有子类,
final
类中的方法默认是final的。
final
方法不能被子类的方法覆盖,但可以被继承。
final
成员变量表示常量,只能被赋值一次,赋值后值不再改变。
final
不能用于修饰构造方法。

Finally语句是起到异常处理出口的作用,用在try...catch语句最后,无论是否出现异常(catch中的语句是否被执行),finally中的语句都会被执行,这样可以更好的控制程序的走向

对象之间不再用==来进行比较,因为==是用来比较的是内存地址。
覆盖后的equals方法比较的不再是俩个对象的内存地址,而是根据之间的需求来决定。
例如:
public class L3_1
{
 public static void main(String[]args){
  K a1=new K(22);
  K a2=new K(22);
  System.out.println(a1.equals(a2));
 }
}
class K{
 private int i;
 K(int i){
  this.i=i;
 }
  boolean equals(K b2){
  if(this.i==b2.i){
   return true;
  }else{
   return false;
  }
 }
}














初识Renode 1. 简介 Renode是Antmicro公司发布的一个开发框架,使得开发人员通过模拟物理硬件系统(包括CPU、外围设备、传感器、环境以及节点之间的有线或无线介质),加速物联网和嵌入式系统的开发。它可在PC上通过软件对嵌入式设备进行模拟,可模拟Cortex-M、Cortex-A、RISC-V和其他CPU,并可模拟外设以及各种通信总线和接口。其指令模拟器使用C语言开发,外设模拟器使用C#语言开发,测试及输出层面的内容则用python编写。 Renode官网:Renodehttps://renode.io/ 阅读详情

相关推荐

Demo2Reward:用人类演示动态优化VLM奖励模型提示

多模态大模型(VLM)的奖励建模正面临核心瓶颈——静态提示导致语义鸿沟与泛化失效。其本质是将人类判断标准固化为不可更新的文本模板,使奖励信号脱离真实任务意图。Demo2Reward提出范式级改进:以结构化人类演示为元信号,驱动提示权重连续优化,实现从‘结果打分’到‘过程理解’的跃迁。该方法不修改VLM主干,却显著提升RLHF收敛效率与OOD鲁棒性,在医疗、工业质检等场景验证了跨任务迁移与热修复能力。它重新定义了提示工程的技术价值:不是前端微调,而是奖励系统的认知校准基础设施。

weixin_34302798的博客 408

JVM的结构组成

JVM构成 1、类加载子系统 2、方法区 3、Java堆 4、直接内容 5、Java栈 6、本地方法栈 7、垃圾收集系统 8、PC寄存器 9、执行引擎 类加载子系统 负责从文件系统,或者网络中加载Class信息 加载的信息存放在一块称为方法区的内存空间 方法区 存放类信息、常量信息、常量池信息、包括字符串字面量和数字常量等 Java堆 在Java虚拟机启动的...

天高任鸟飞 1047

2025.06.20【pacbio】|PB甲基化分析结果的统计与可视化介绍

本文介绍了PacBio甲基化数据的统计分析与可视化方法。主要内容包括:1) 分析甲基化位点分布、比例及染色体分布;2) 修饰基序(Motif)的统计与热图展示;3) 全基因组和局部区域测序深度可视化;4) 使用IGV查看单个reads修饰情况。文章提供了R代码示例,涵盖柱状图、分布图、热图等多种可视化形式,并建议了差异甲基化分析等进阶方法,帮助科研人员深入挖掘甲基化数据。

2067

java 实现输出姓和名

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 package xiaojie; import java.util.Scanner; public class baiJiaXing { public static void main(String[] args...

weixin_34236497的博客 726

FastDDS之共享内存

transport层负责为DDS用户数据收发和服务发现提供通信。包含UDP,TCP,SHM。

u010378559的博客 3089

GPS从入门到放弃(一) --- GPS基础原理

GPS从入门到放弃(一) — GPS基础原理 GPS,全称Global Positioning System,已经广泛应用于我们的日常生活中了,现在的智能手机 里都会自带GPS定位功能。这是一个美国的全球定位系统,虽然我们现在也有北斗了,但毕竟GPS搞的早,所以先从它开始研究起。 整个GPS系统分三大部分: 地面站 卫星 接收机 地面站负责监控。它们通过接收、测量各个卫星信号,计算卫星的运行轨...

tyst08的专栏 2万+

JAVA基础

输出 publice  公共的 class 类 helloworld 名 System 系统 out 向外 println 打印 (String[] args)参数  // 编写代码(java 固定) publice class HelloWorld{ //mian 方法:java程序的入口,也就是说java程序从main中开始一行一行的执行  pubice(公共的) sta

sinat_27154631的博客 293

第2章 数据库关系模型-单元测验-数据库原理及应用

第2章 数据库关系模型---数据库与机器学习 作业 常用的关系查询操作包括选择、投影、连接、并、交等。 v 实体完整性是指关系表的属性组成必须是完整的。 x 自然连接是一种等值连接。 v 在参照完整性中,可以定义级联操作。 v 用户自定义完整性可以实施数据的业务约束。 v 每个关系是一个二维表,但二维表不一定是关系。 v 关系中复合键至少包含两个属性。 v 代理键是为了唯一标识关系的不同元组,需要在表单或报表中显示出来。 x ...

aiqq136的博客 5727

【强烈推荐】Java入门基础笔记,超全!

一、初始java 1.生活中的程序: 从起床到教室上课的过程 穿衣打扮》起床》洗漱》出宿舍》》吃早餐》到教室 按照特定的顺序去完成某一件事的过程我们叫做生活中的程序 2.计算机中的程序: 一组有序指令的集合,需要和计算机交流就要使用计算机语言,java就是计算机语言的一种 3.java能做什么: 1、开发桌面应用程序,比如:QQ、酷狗 2、开发internet应用程序,比如:淘宝、天猫 4.java技术平台: 1、Java SE:标准版,java的技术与核心,开发桌面应用程序 2、J

deqing271的博客 6878

基于 高斯过程回归(Gaussian Process Regression, GPR) 的 时间序列区间预测 的 MATLAB 示例代码

基于 高斯过程回归(Gaussian Process Regression, GPR) 的 时间序列区间预测 的 MATLAB 示例代码

算法如诗的博客 155

Python航空航天设计神器!从入门到实操,小白也能搞定飞机优化

AeroSandbox的核心价值的是:​降低航空工程优化的门槛,用Python实现高效、简洁的工程设计​。无论是科研、学习还是实际项目,它都能帮你节省大量时间,不用再手动推导导数、编写复杂的优化逻辑。对于新手来说,建议先从案例1(Rosenbrock函数)入手,熟悉优化流程,再尝试案例2(翼型优化),逐步掌握核心用法;对于有航空相关需求的小伙伴,可以深入研究内置的物理模型,结合自己的项目进行定制化开发。最后,互动时间到!👉 你是用AeroSandbox做科研、练手还是实际项目?

源代码杀手的博客 126

Java基础学习笔记(一)—— Hello, Java!

代码实例 HelloJava.java public class HelloJava{ public static void main(String[] arg){ System.out.print("Hello, Java!"); } } 运行结果 命令行输出 Hello, Java! 注意点 1、类名要与文件名相同 2、在命令行中用javac HelloJava.java命令对...

qq_44525150的博客 329

华为OD机试真题-查找单入口空闲区域(Py/Java/C/C++/Js/Go)

华为OD机试(机考)双机位C卷 【查找单入口空闲区域】,提供Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。华为OD机试 - 查找单入口空闲区域。

qq_45776114的博客 1270

Java SE基础 和 Java Web 超详细笔记!

​ 1)定义:在程序运行过程中,其值可以发生改变的值​ 2)定义变量写法:变量名=变量值 a=1​ 3)常见变量 关键字:​ byte 字节​ short 短整数​ int 整数默认​ long 长整数​char 字符boolean 布尔float 浮点数 默认情况下为double类型 要为浮点类型 需要在值后面加f 例如 f=3.14fdouble 浮点数默认,默认值为0.0​ 1)定义:就是给类、方法、变量等起名字的符号。​ 2)不能以数字开头。

m0_70985211的博客 2702

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

Java基础篇学习笔记之第一个Java程序!

文章目录Java基础笔记之第一个Java程序!1、大纲1.1、主要应用1.2、Java基础图解1.3、语言概述2、Java语言环境搭建3、第一个Java程序 Java基础笔记之第一个Java程序! 主要是记录自己学习的笔记! 对于新手来说,有编程基础更好,但是没有编程基础也是完全可以学习Java的。 视频资料 1、大纲 什么是Java? Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言

qq_33317597的博客 463

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

java基础重点笔记!需重点掌握

一个类包含数据成员和方法。对象是基于类创建的实体,每个对象都有自己的状态和行为。Java是一种面向对象的高级编程语言,广泛应用于开发企业级应用程序、桌面应用程序、移动应用程序和Web应用程序。Java中的继承允许一个类继承另一个类的属性和方法。Java中的异常处理机制允许程序在遇到错误时进行优雅的退出。在Java中,方法是类中定义的代码块。在Java中,main()方法是程序的入口点。Java中的多态性允许使用同一个方法来处理不同的对象类型。Java中的数据类型分为两类:原始数据类型和引用数据类型。

m0_65853239的博客 78

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

看完这个阿里Java基础笔记,你绝对有收获!

要学习Java,你首先得了解一下什么是java: Javaweb是用Java技术来解决相关web互联网领域的技术总和。说的简单的就是写网站的一种语言。一般分为前端和后端两种方向,前端所做的东西就像幕前表演的演员,所做的就是让网页看起来顺眼,用起来顺心,而后端则属于处理数据,让程序处理速度、能力不断优化,属于幕后。前后端的配合才能是一个网站正式投入使用。 接下来就是关于java体系主要涉及的三个方面——J2SE/J2EE/J2ME(KJAVA) 下面这本Java笔记带你清楚了解Java 目录 .

芒果不是程序猿v: 的博客 199

尝鲜!Alibaba首发Java零基础到架构成长笔记,先到先得

现在面试大部分候选人在工作 3 年的时候基本都会遇上一道难过的坎。为啥这么说呢?因为工作一段时间之后,大部分工程师都已经完成了最原始的基础技能积累,大家的技术水平差距集中在语言、框架、工具的使用熟练度上。而这个差异不会很大,就算大,也很容易追赶。但如果一个工程师一直停留在业务开发,一直沉浸于工具的使用熟练度,那他自然就会遇到能力瓶颈。这个瓶颈就是前面说的那道坎,跳过去了,你就发现了一片新天地,可以在下一个区间里继续生长。跳不过去,就可能不停地在原地打转。 最近意外收获了到一份Alibaba一位大佬给的Ja

weixin_50666791的博客 154

努力 坚持 自信 成功!java全面基础笔记1

----------- android培训、java培训、java学习型技术博客、期待与您交流! ------------ 从6月25号进入广州传智博客学习基础班,转眼就过去了1个月。每天很辛苦,每天很忙碌,每天很充实!追求北京黑马:  java软件学习的最强训练基地,追求人生的理想的实现,追求自我价值的肯定,我还得努力,坚持,自信,充满斗志!      以下是我这个多月来,在老师指导下

1338

Java笔记——Java 零基础入门学习(小白也能看懂!)

文章目录1. 初始 Java1.1 Java 概述1.1.1什么是 JavaJava是一种优秀的程序设计语言,它具有令人赏心悦目的语法和易于理解的语义。不仅如此,Java还是一个有一系列计算机软件和规范形成的技术体系,这个技术体系提供了完整的用于软件开发和跨平台部署的支持环境,并广泛应用于嵌入式系统、移动终端、企业服务器、大型机等各种场合。1.1.2 Java 背景Java 是美国sun公司在1995年推出的一门计算机高级编程语言。Java 早期称为Oak(橡树),后期改名Java。Java 之父:詹姆斯·

a25847a的博客 653

初学呐喊!——Java内容自学笔记——职业化基础笔记

Java内容自学笔记 职业化基础笔记 一、动手做 任务一、 Windows职业化操作 Windows系统不分大小写 Linux系统 Mac Unix :严格区分大小写 1.Windows常用的运行命令 打开计算器 :win+r 输入cala 打开画图:win+r输入mspaint 打开记事本:win键+R输入notepad 打开写字板:win+r输入write 打开控制面板:win+r输入control 打开注册表:win+r输入regedit 打开系统配置:win+r输入msconfig 打

weixin_48318054的博客 204

干货!阿里大神用自身经验总结出的Java零基础限量版笔记

前言 现在已经是金九银十的跳槽大旺季了,是市场对于程序员的需求最大的时候,因此很多程序员,大三大四的学生,要转行的人都忙着准备简历,以便能在好时机博一个好工作。正是因为程序员的门槛低薪资可观,每年很多人都想转行做程序员,已造成高级程序员稀缺的现象,因此很多有两三年以上工作经验的程序员发现面试越来越难了。 阿里巴巴属于行业绝对的老大哥,培养的太多优秀的程序员,如果仔细去看看阿里对于Java程序员的招聘需求你会发现,不管是多久的工作经验,都需要熟练掌握Java基础。因此,对于秋招的学生来说,夯实的基础是很大

Java6888的博客 317

java面试基础题,学习笔记!

JAVA1:简述Java的基本历史java起源于SUN公司的一个GREEN的项目,其原先目的是为家用消费电子产品发送一个信息的分布式代码系统,通过发送信息控制电视机、冰箱等.2:简单写出Java特点,写出5个以上,越多越好简单的、面向对象的、分布式的、安全的、稳定的、与平台无关的、可解释的、多线的、动态的语言。3:什么是Java?JAVA:一种编程语言一种开发环境一种应用环境一种部署环境4:请

Venus's Blog 2064

阿里大佬分享的Java零基础核心笔记,干货满满!太幸福了

前言 现值金九银十之际,是面试高峰季,很多学校开始校招,也是跳槽转行的最佳时机。根据数据显示,程序员是金九银十里最热门的行业,也是需求量最大的行业,但是程序员是个门槛低,但金字塔顶峰比较高的行业,意味着你的付出要比别人多才能拔尖。 我们都知道,互联网行业以阿里、腾讯作为一线标杆,即使现在互联网公司处于百花齐放的状态。那么作为一名Java程序员,如何做到拔尖呢?实际上打好基础很重要,至于基础的巩固,可以参考今天要分享的这份由Alibaba技术官整理出来的Java零基础学习笔记。 关于本文这份笔记,主要分

Java6888的博客 778

零基础学习Java开发,这些学习笔记送给你!

因为Java具备很多特点,并且在企业中被广泛应用为此很多小伙伴选择学习Java基础开发,但是零基础学习Java技术开发需要我们制定Java学习路线图对于我们之后的学习会非常有帮助。 零基础学习Java开发-这些学习笔记送给你: 第1步:学习Java的开发环境配置、开发第一个Java程序。也建议大家开始使用eclipse等IDE,不必纠结是不是一定要从记事本开始。 第2步:学习数据类型、运算符、变量。这是编程的基础,是程序的“砖块”。这些内容大多数编程语言都有,而且非常类似。 第3步:学习控制语句。这是编程

xiaoxijinger的博客 139

一下就戳到了我的心巴上!清华架构师经验总结Java基础核心笔记,看完即可入门

从大学到现在,我使用Java已经将近20年,日常也带实习生,还在公司内部做training,所以可以分享下我的经验,希望对你有用。因为是在工作中培训,就必然有两个约束:实用、时间紧,因此就不能像大学那样,把所有的知识点都面面俱到的讲到。而只能挑基础的,实用的,难理解的讲。至于其他边边角角的知识,就一笔带过。一则没有时间,二则不常用,再则即使讲了,学生印象也不深刻。总之一句话:“好钢用在刀刃上”。

m0_57042151的博客 71
上一篇: cookie总结
下一篇: sqlsever ,触发器的练习
罗文付
博客等级 码龄12年 2粉丝 19原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值