Java开发:Java SE 基础知识篇

JAVA SE 3.面相对象 JAVA SE(Java Platform Standard Edition ,Java标准版) JRE(运行环境):提供Java虚拟机和运行Java应用程序所必需的类库 JDK(Java SE开发工具集):包括JRE和命令行开发工具(编译,运行,调试Java程序所需要的基本工具) JRE与JDK的区别: 如果只需要在某种操作系统下运行Java应用程序,则安装支持该操作系统的JRE软件即可; 如果不仅要运行Java应用程序,还要开发Java应用程序,就需要安装支持该操作系统的JDK软件; . 阅读详情

目录

一、数据类型扩展

二、变量作用域

三、常量

四、运算符

五、用户交互Scanner

六、循环结构

七、Java流程控制break、continue

八、方法重载

九、可变参数

 十、递归

递归结构包括两部分:

十一、面向对象(OOP)

十二、static关键字

十三、抽象类

十四、接口Interface

十五、内部类

十六、Error和Exception


 

一、数据类型扩展

A、整数扩展:进制  二进制以0b开头、十进制、八进制以0开头、十六进制以0x开头

int i = 10;//十进制
int i2 = 010;//八进制
int i3 = 0x10;//十六进制

B、浮点数扩展

float 的特点:有限、离散、舍入误差、大约值、接近但不等于

银行业务不使用float或者double,使用BigDecimal

float f = 0.1f;
double d = 1.0/10;
System.out.println(f==d);//输入是false

//====================================

float d1 = 22313131313131f;
float d2 = d1+1;
System.out.println(d1==d2);//输出是true

C、字符串扩展

String sa = new String("hello world");
String sb = new String("hello world");
System.out.println(sa == sb);//返回false


String sc = "hello world";
String sd = "hello world";
System.out.println(sc==sd);//输入true

二、变量作用域

A、类变量

被static修饰的变量

B、实例变量

位于类中 且在 方法块之外的变量,从属于对象(如果不初始化 ,初始值会变成这个类型的默认值)

C、局部变量

方法块里的变量为局部变量 ,必须要初始化。

三、常量

初始化后不能再改变值,不会变的值。必须被final关键字修饰。

四、运算符

算数运算符:+、-、*、/、%、++、--

赋值运算符:=

关系运算符:>、<、>=、<=、==、!=、instanceof

逻辑运算符:&&、||、!

以下了解即可

位运算符:&、|、^、~、>>、<<、>>>

A = 0011 1100

B = 0000 1101

A&B = 0000 1100

A|B = 0011 1101

A^B = 0011 0001

~B = 1111 0010

条件运算符:?:

扩展赋值运算符:+=、-=、*=、/=

五、用户交互Scanner

        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入数据:");
        String s = scanner.nextLine();//可以输出一句完整的话,无论是否含有空格
        System.out.println("输出的内容为:" + s);
        scanner.close();
================================
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入数据:");
        String s = scanner.next();//如果含有空格,只可以输出空格前面的话
        System.out.println("输出的内容为:" + s);
        scanner.close();
================================
        Scanner scanner = new Scanner(System.in);
        double sum = 0;
        int m = 0;
        while (scanner.hasNextDouble()) {
            double nextDouble = scanner.nextDouble();
            m++;
            sum = sum + nextDouble;
            System.out.println("你输入了第" + m + "个数据,然后当前结果sum=" + sum);
        }

        System.out.println(m + "个数的和为" + sum);
        System.out.println(m + "个数的平均值是" + (sum / m));
        scanner.close();

六、循环结构

A、while循环

只有满足条件才会执行循环体

B、do...while循环

至少会执行一次,如果满足条件会继续执行

C、for循环

循环体执行之前,循环次数就已经确定

快捷键:100.for

九九 乘法表

 for (int i = 1; i <= 9; i++) {
            for (int j = 1; j <= i; j++) {
                System.out.print(j + "*" + i + "=" + (i * j) + "\t");
            }
            System.out.println();
 }

 D、增强for循环

int[] numbers ={1,2,3,4,5};
for(int x : numbers){
System.out.println(x);
}

七、Java流程控制break、continue

A、break:用于跳出循环

B、continue:用于跳过某次循环

八、方法重载

重载就是在一个类中,有相同的函数名称,但形参不同的函数。

方法的重载规则:

*方法名称必须相同

*参数列表必须不同

*方法的返回类型可以相同也可以不同

*仅仅返回类型不同不足以成为方法的重载

九、可变参数

可变参数只能在最后一个参数的位置

public class Demo01 {
    public static void main(String[] args) {
        addNum(1,1,8,0,2,3,4,5,6,7);
    }

    private static void addNum(int a, int... b) {
        for (int i : b) {
            System.out.println(i);
        }
    }
}

 十、递归

自己调用自己

递归结构包括两部分:

  1. 递归结束的条件:什么时候不调用自身方法,如果没有头,将陷入死循环。
  2. 递归体:什么时候需要调用自身方法
示例:实现 n!
public class Demo01 {
    public static void main(String[] args) {
        Demo01 demo01 = new Demo01();
        System.out.println(demo01.f(3));
    }


    private int f(int num) {
        if (num == 1) {
            return 1;
        } else {
            return num * f(num - 1);
        }
    }
}

十一、面向对象(OOP)

三大特性:封装、继承、多态

 A、封装

应禁止直接访问一个对象中数据的实际表示,而应该通过操作接口来访问(即属性私有,get/set)

封装的意义:

  1. 提高程序的安全性,保护数据
  2. 隐藏代码的实现细节
  3. 统一接口
  4. 增加系统可维护性

B、继承

Super注意点:

  1. super调用父类的构造方法,必须在构造方法的第一个
  2. super必须只能出现在子类的方法或者构造方法中
  3. super和this不能同时调用构造方法

Super  VS  this

      代表的对象不同:
            this:本身调用者这个对象
            super:代表父类对象的应用
      前提:
            this:没有继承也可以使用
            super:只能在继承条件下才可以使用
      构造方法:
            this():本类的构造
            super():父类的构造

C、多态

定义:同一个方法可以根据发送对象的不同而采用多种不同的行为方式

多态是方法的多态,属性没有多态

方法不能重写的情况:static方法、final方法、private方法

多态存在的条件:

  1. 有继承关系
  2. 子类重写父类的方法
  3. 父类引用  指向子类对象

十二、static关键字

public class Application {
    public static void main(String[] args) {
        Student student = new Student();
        System.out.println("===============");
        Student student2 = new Student();
    }
}
public class Student {
    {
        System.out.println("匿名代码块");
    }

    static {
        System.out.println("静态代码块");
    }

    public Student() {
        System.out.println("构造方法");
    }
}

执行顺序:
静态代码块
匿名代码块
构造方法
===============
匿名代码块
构造方法

十三、抽象类

A、抽象类不能被实例化,只能被继承

B、抽象类中可以写普通方法

C、抽象方法必须写在抽象类中

十四、接口Interface

接口中只有协议,没有具体实现。

public interface UserService{
//接口中定义的属性默认修饰符:public static final
int AGE = 99;
//接口中定义的方法默认修饰符:public abstract
void add();
}

十五、内部类

A、成员内部类

B、静态内部类

C、局部内部类

D、匿名内部类

new Person().eat();//其中new Person() 是没有名字的,所以叫做匿名内部类

十六、Error和Exception

Error一般是JVM抛出的,通常是灾难性的致命错误,是程序无法控制和处理的。(当出现这些异常时,Java虚拟机(JVM)一般会选择终止线程。)

Exception通常情况下是可以被程序处理的,并且在程序中应该尽可能的处理这些异常。

#Exception

try、catch、finally、throw、throws

throw:用于方法块内部抛出异常
 public void test(int a, int b) {
        if (b == 0) {
            throw new ArithmeticException("b不能为0");//该异常为运行时异常,如果是编译时异常则必须向方法调用者抛出异常
        }
    }

throws:用于方法向外部抛出异常
 public void test(int a, int b) throws Exception {
        if (b == 0) {
            throw new Exception("b不能为0");//该异常不能内部自己捕获,则需要向方法调用者抛出异常
        }
    }

 

整理中......

Java知识总结--SE篇 1-1-什么是Java的跨平台原理 Java通过不同的系统,不同的版本不同的位数的Java虚拟机(JVM)来屏蔽不同的指令集,然后对外提供了统一的Java接口(API),这样,我们的开发者只需按照接口开发即可,如果系统需要部署在不同的环境是,只需要系统上面按照片对应版本的虚拟机即可 1.2-Java基本数据类型 1.3-Java基本类型所占字节和范围 1.3-int(long) 和 float(double) 哪个表示的范围大?为什么? float表示的 范... 阅读详情

相关推荐

java SE 基础知识指南

36. Lock(上):相比Java synchronized,JUC Lock有什么优势?19. io类库:http://java.io类库如此庞大,怎么才能全面系统的掌握它?51. 线程状态:为何synchronized和Lock这两种锁对应的线程状态不同?34. synchronized(上):线程释放锁之后,如何通知其他线程获取锁?13. HashMap(上):为何HashMap中数组的大小必须是2的幂次方?37. Lock(中):如何使用AQS(抽象队列同步器)实现JUC Lock?

qq_25156781的博客 1269

JavaSE(入门)

Java 是由 Sun Microsystems(现为 Oracle)推出的一种面向对象的编程语言。跨平台性:通过 Java 虚拟机(JVM),Java 程序可以在不同操作系统上运行。面向对象:Java 支持封装、继承、多态等面向对象的特性。安全性:Java 提供了丰富的安全机制,保护程序免受恶意代码的侵害。多线程:Java 内置了多线程支持,可以充分利用多核处理器的性能。

2303_76624483的博客 1204

JDK、JRE、Java SE、Java EE和Java ME的详细解析

JDK、JRE、Java SE、Java EE和Java ME的详细解析

shaozheng0503的博客 2336

JavaSE——面向对象开发

1.包的定义与使用 &amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;nbsp;包的本质实际上就是一个文件夹,在项目开发中很难避免类名称重复问题,如果所有的java文件都放在一个文件夹,就有可能出现覆盖问题。

LiLiLiLaLa的博客 757

Java SE 部分基础知识

语言没有好坏之分,只有适不适用?厨房中的刀,哪把刀更好:砍刀,切菜刀,西瓜刀,水果刀?每个语言都有适用的场景数据分析:python,3D游戏:C++;前端页面:javascript;应用程序的后台:java所有具体的事物都是对象(object)类中都应该有什么1.定义一个学生类型//定义类的属性 String name;int age;}abstract是一个修饰符可以修饰方法和类类:抽象类,不能被实例化;方法:抽象方法,让子类重写;如果子类不重写,子类方法也是抽象方法。

Hibiki的博客 674

三年JavaEE开发积累的那些代码之一:JavaSE篇完整实例源码

三年JavaEE开发积累的那些代码之一:JavaSE篇 有什么? 1)自己写的例子:或是为了项目中应用写的demo,或是为了学习某项技术写的demo。 2)网上下载的例子:或改过或没改过,或完善过或原封没动。 没什么? 1)公司项目的源代码(这个真没有,虽然可以有,虽然已经离职2年有余) 以后若有时间,可以将项目源代码中的某些技术(并不是什么高深的技术)提炼出 来发帖子或博客,分享之。 2)公司业务紧密相关的测试代码。

【01】JAVASE-Java基础入门【从零开始学JAVA】

从零开始学Java系列课程

波波烤鸭的博客 1388

modbus

从机地址 功能码 起始地址高位 起始地址低位 数量高位 数量低位 字节数 0001H高位 0001H低位 0002H高位 0002H低位 CRC高位 CRC低位。每个输入寄存器的长度为2个字节。其中,CDH对应线圈0013H到001AH的内容,01H对应线圈001B到001CH的内容,未使用位用0填充。从机地址 功能码 起始地址高位 起始地址低位 寄存器数量高位 寄存器数量低位 CRC高位 CRC低位。从机地址 功能码 起始地址高位 起始地址低位 寄存器数量高位 寄存器数量低位 CRC高位 CRC低位。

lunhuicnm的博客 9752

JavaSE从零到精通:最全面的Java标准版教程

javaSE从入门到精通,超详细java知识点

m0_54068390的博客 2169

keil自动分配SDRAM空间设置使用

1.修改.sct文件。

qizhi321123的博客 1404

MTK-Display技术解析:从MDP到DDP的架构演进

本文深入解析了联发科(MTK)显示技术从MDP到DDP的架构演进。MDP作为多媒体数据预处理中心,负责格式转换与缩放;而DDP则整合了OVL、COLOR、AAL等模块,并引入CMDQ与场景化模式,实现了从分散处理到统一智能调度的飞跃,旨在提升画质、流畅度并降低功耗。

weixin_29218509的博客 255

Java坦克大战------讲解

做这个游戏的目的是为了更好的复习我们在java-SE所学过的知识,另外我们可以学习到一些新的知识,废话不多说,我们直接开始 以上代码演示的是在页面画出一个正方形的图片演示结果

weixin_62922379的博客 414

硬件测试之—纹波测试为什么不要使用接地夹子

示波器为什么不推荐使用接地夹

qq_19294353的博客 2988

JAVA SE基础知识总结

JAVA基础篇1_JAVA语言概述1.1 JAVA的总体概述1.2 JAVA语言概述1.2.1 基础常识1.2.2 计算机语言的发展迭代史1.2.3 Java语言版本迭代概述1.2.4 Java语言应用的领域1.2.5 Java语言的特点1.3 开发环境的搭建(重点)1.3.1 JDK、JRE、JVM的关系1.3.2 JDK的下载、安装1.3.3 path环境变量的配置1.3.3.1 为什么配置path环境变量?1.3.3.2 如何配置?1.3.4 第一个JAVA程序1.3.5 注释与API文档等...1

weixin_47498889的博客 1万+

基于 YOLOv26 的电路焊点虚焊检测系统:AI 质检实战

本文介绍了一种基于YOLOv26的电路焊点虚焊检测系统,利用深度学习技术实现自动化质检。系统能识别虚焊、桥接、少锡等8种常见焊点缺陷,具有高精度、实时性和强鲁棒性等特点。文章详细阐述了系统架构,包括数据采集、预处理、YOLOv26检测模型和后处理模块,并提供了代码实现的关键部分,如数据预处理增强和模型训练配置。该系统可显著提高电子制造业的质检效率和准确性。

一键难忘的博客 692

【WRFDA教程第四期】雷达数据同化(Radar Data Assimilation)

雷达数据同化(Radar Data Assimilation)

WW、forever的博客 1759

Java SE,Java EE:到底是什么

JavaSE是Java的标准版,提供基础语法、类库和运行环境,是Java开发的核心基础。JavaEE则是基于SE的企业扩展版,增加了Servlet、JPA等企业级规范,适用于开发大型Web应用和分布式系统。两者关系为:SE是必学基础,EE是进阶选择,开发企业应用需先掌握SE再学习EE的核心技术。学习路径建议从SE开始,逐步过渡到EE相关框架。

m0_73884648的博客 2164

医疗影像分割 | 使用MedSAM训练自己的医学图像分割数据集

摘要 本文详细介绍了使用MedSAM模型训练自定义医学图像数据集的完整流程。主要内容包括:代码下载与环境配置(创建虚拟环境、安装依赖、验证CUDA)、数据集准备(目录结构、格式要求、命名规范及检查工具)、预训练模型下载(不同模型选择建议),以及训练脚本修改(解决文件名匹配、Windows系统NCCL支持、单GPU训练等常见问题)。通过逐步指导,帮助用户快速搭建MedSAM训练环境并适配自己的医学图像数据,实现高效的分割模型训练。

LiRongLu_的博客 489

Java SE 基础知识

Java虚拟机(JVM),Java的加载与执行原理,JDK、JRE、JVM分别是什么?他们的关系是什么,class和public class的区别,Java标识符命名规范,Java中的加号运算符,变量的分类,原码、反码、补码。

qq_51665235的博客 2091

西门子S7-1200PLC与FANUC机器人进行PROFINET IO通信的具体方法和步骤详解

西门子S7-1200PLC与FANUC机器人进行PROFINET IO通信的具体方法和步骤详解

Robot_PLC_HMI_Automation 1万+

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

Java SE基础知识总结

Java程序的入口是`main`方法,而`main`方法可以接受一个命令行参数,它是一个String[]数组。 这个命令行参数由JVM接收用户输入并传给`main`方法:

m0_74267125的博客 1458

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

java se开发文档_Java SE 9对运营和开发团队的影响

就在JavaOne之前,TheServerSide与ZeroTurnaround的Simon Maple进行了交谈,探讨了Java SE 9和更强大的Java生态系统所发生的所有事情。 对话中洗脱了几篇有趣的文章,因此我们认为值得将其完整发布。 https://cdn.ttgtmedia.com/rms/podcasts/Simon%20Maple%20PRODUCED.mp3 卡梅隆...

服务器编程交流平台 233

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

Java SE 与 Java EE 简介

Java SE 与 Java EE 简介

诸神缄默不语的博客 1583

Java SE 和 Java EE 的区别

Java SE与Java EE核心区别摘要(150字) Java SE是Java标准版,提供JVM、核心类库(集合/IO/线程等)和基础开发工具,适用于桌面程序和控制台应用,是所有Java开发的基础。Java EE是企业版扩展规范,基于Java SE增加Servlet、JSP、EJB等API,专为分布式高并发系统设计(如电商/金融平台),需部署至Tomcat等服务器运行。学习路径必须先掌握Java SE,再进阶Java EE或相关框架(如Spring)。注意:2018年后Java EE更名为Jakarta

weixin_45784564的博客 576

JAVA SE 基础知识框架

JAVA SE 基础知识框架

不速之客的博客 285

Java SE 总结

try {throw new MyException("自定义异常");

Broken_x的博客 3万+
上一篇: Dos常用命令符
下一篇: Java开发:GUI编程
android157
博客等级 码龄9年 193粉丝 95原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值