java基础复习(练习写博客)

news2024/9/29 7:18:13

文章目录

  • Java特性和优势
  • java三大版本
  • JDK、JRE、JVM(从前到后包含)
  • Java开发环境搭建步骤
  • Java程序运行机制
  • IDE
  • Java基础语法
    • 一、注释、标识符、关键字
    • 二、数据类型(shift双击问题)
    • 三、变量、常量、作用域
    • 四、运算符
    • 五、包机制、JavaDoc
  • Java进阶语法
    • 一、Scanner用户交互(输入)
    • 二、for迭代器(debug学习)
    • 三、方法
    • 四、数组
    • 五、面向对象
    • 六、异常


Java特性和优势


  • 简单性
  • 面向对象
  • 可移植性
  • 高性能
  • 分布式
  • 动态性
  • 多线程
  • 安全性
  • 健壮性

java三大版本


  • JavaSE:标准版,java基础*
  • JavaME:嵌入式开发
  • JavaEE:企业级开发,web开发*

JDK、JRE、JVM(从前到后包含)


在这里插入图片描述

Java开发环境搭建步骤


  • JDK下载安装
  • 配置环境变量
  • 网上找教程安装即可

Java程序运行机制


  • 编译型:用编译器把整个程序.java 编译成.class(操作系统要求低)
  • 解释型:实时解释程序语句(速度快)
  • 程序运行机制
    在这里插入图片描述

IDE


IDE(集成开发环境)
Java常用的IDE:Eclipse、Idea

Java基础语法

一、注释、标识符、关键字


注释:

  • 结构复杂需要使用
  • 注释给开发人员看的
  • 写注释是一个合格的开发者必备修养

Java注释的三种方式:

  • 单行注释
  • 多行注释
  • 文档注释
public class demo1 {
    public static void main(String[] args) {
        //单行注释
        /*
        * 多
        * 行
        * 注
        * 释
        * */
        /** @Description 文档注释,写的会比较少
         *  @Author along
         *  */
        System.out.println("demo!");
    }
} 

标识符:
在这里插入图片描述

Java所有的组成部分都需要名字,比如类名、方法名、变量名都是标识符。
注意点:

  • 标识符首字符由字母、下划线、$开始
  • 变量由字母、下划线、$、数字组成
  • 变量不能以数字开头,可以用中文但不必要

二、数据类型(shift双击问题)

  • 强类型语言
    • 要求变量使用严格符合规定,所有变量需要先定义才能使用,安全性高。
  • 弱类型语言

Java数据类型分类

在这里插入图片描述

public class Demo2 {
    public static void main(String[] args) {
        // 八大基本类型
        // 整数
        int t1=65536*32767;
        byte t2=127;
        short t3=32767;
        long t4=100000L;
        // 小数:浮点型
        float f1=3.9F;
        double f2=454.345;//更大
        //字符,和ASCII码相关
        char grade='A';
        //字符串,String 类

        //布尔型
        boolean b=false;
    }
}

双击shift问题

一、引言
我们在使用IDEA时,有时候在切换中英文输入法的时候,会不小心按了两次shift键,从而弹出 全局搜索框 ,让人不耐其烦,每次都要手动关闭这个搜索框。
二、取消双击shift
1.按ctrl+shift+alt+/ 在弹出的框中选择注册表(registry…)
2.找到ide.suppress.double.click.handler选项,选中打上勾,然后点close。

扩展:
整数进制转换
浮点数问题
float和double是有限的,离散的,会四舍五入,都是约等于
所以有时候float类型的不等于double类型,因为舍入的精确位数不同
如果银行业务需要更高的精度,使用BigDecimal类
字符的本质都是数字,各种编码表示,比如中文也是一个数字,转义字符比如\n,\t,\a…

类型转换
低----------------------------------------------------------->高
byte,short,char–>int–>long–>float–>double

  • 强制类型转换 (int)a 高到低,可能出现内存溢出
  • 自动类型转换 低到高顺其自然即可

三、变量、常量、作用域

Java变量是程序中最基本的存储单元,包括了变量名,变量类型和作用域。

  • 变量必须声明它的类型
  • 变量名必须合法
  • 变量声明以分号结尾
public class Demo4 {
    // 属性:变量
    static int classVariable=0;
    // 常量
    static final double PI=3.1415926;
    // main
    String str="hhh";
    public static void main(String[] args) {
        //局部变量:声明并初始化才可使用
        float f=1.1f;
        //调用实例变量,属于对象,new 对象即可使用
        System.out.println(new Demo4().str);;
    }
    // 方法
    public void fun() {

    }
} 

常量使用关键字final 定义,是一个特殊的变量,值不会被改变。

变量的命名规范

  • 所有变量、方法、类名最好见名知意
  • 类成员 变量驼峰式命名testFirst
  • 常量 大写和下划线组成
  • 类名 首字母大写,并且使用驼峰式
  • 方法名 首字母小写和驼峰式

四、运算符

在这里插入图片描述
Math类是很方便的算术工具类 Math写了之后很多方法都可以点出来
在这里插入图片描述
在这里插入图片描述

public class Demo6Summary {
    public static void main(String[] args) {
        int a = 10;int b = 20;
        a+=b; //a = a+b
        a-=b; //a = a-b
        System.out.println(a);
        //字符串连接符+ , string
        System.out.println(""+a+b);//输出字符串
        System.out.println(a+b+"");//运算后变成字符串
        //理解优先级,优先级高的先运算,最高的是()
    }
}

五、包机制、JavaDoc

包的本质就是文件夹
作用:命名可能会出现很多重复,用包隔开文件即可重复命名并不冲突。
在这里插入图片描述

//包语句语法格式,文件夹分别后会自动加在第一行
package p1.[p2.[p3...]];
//一般利用域名倒置作为包名
//为了使用某个包中的成员,可以导入该包使用,语法如下
import p1.[p2.[p3...]].classname|*

JavaDoc(文档注释)
javadoc在命令行中可以生成自己的
在这里插入图片描述

/**
 * @author along
 * @version jdk9
 */
public class Doc{
    /**
     * 求输入两个参数范围以内整数的和
     * @param n 接收的第一个参数,范围起点
     * @param m 接收的第二个参数,范围终点
     * @return 两个参数范围以内整数的和
     */
    public int add(int n, int m) {
        int sum = 0;
        for (int i = n; i <= m; i++) {
            sum = sum + i;
        }
        return sum;
    }
} 

在文件所在文件夹中打开cmd 运行“javadoc -encoding UTF-8 -charset UTF-8 Doc.java ” 因为出现乱码,所以加了这两个字符集设置。
在这里插入图片描述
在这里插入图片描述

最后可以生成Doc相关的API网页在这里插入图片描述

Java进阶语法

文章目录

  • Java特性和优势
  • java三大版本
  • JDK、JRE、JVM(从前到后包含)
  • Java开发环境搭建步骤
  • Java程序运行机制
  • IDE
  • Java基础语法
    • 一、注释、标识符、关键字
    • 二、数据类型(shift双击问题)
    • 三、变量、常量、作用域
    • 四、运算符
    • 五、包机制、JavaDoc
  • Java进阶语法
    • 一、Scanner用户交互(输入)
    • 二、for迭代器(debug学习)
    • 三、方法
    • 四、数组
    • 五、面向对象
    • 六、异常


一、Scanner用户交互(输入)


用户交互是在java.util中的Scanner,要导入所在包
基本语法:

Scanner sc = new Scanner(System.in);

通过Scanner类的next()和nextLine()方法拿到输入的字符串,判断是否还有输入的方法是hasNext()和hasNextLine()

import java.util.Scanner;

public class Demo1 {
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        System.out.println("next接收:");
        if(sc.hasNext()){
            int number=sc.nextInt();
            System.out.println(number);
        }
        //IO流的类最好用完就关闭,否则会占用资源
        sc.close();
    }
}

其中next()接收遇到空格会停止,nextLine()读取行

package com.along2;

import java.util.Scanner;

public class Demo2 {
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        if(sc.hasNextInt()){
            int num=sc.nextInt();
            System.out.println(String.format("输出num=%d", num));
        }else{
            System.out.println("请输入整数!!");
        }
        sc.close();
    }
}

二、for迭代器(debug学习)


if,else,switch,break,continue省略,几乎每个语言都有,差别不大
while,dowhile,for基础也差不多

package com.along2;

public class Demo3 {
    public static void main(String[] args) {
        int [] a={1,2,3,4,5,6,7,8};
        for(int i=0;i<a.length;i++){
            System.out.println(a[i]);
        }
        for(int x:a){
            System.out.println(x);
        }
    }
}

学习debug
用循环控制*符号设计一个梯形
在这里插入图片描述

package com.along2;

public class Demo4 {
    public static void main(String[] args) {
        for(int i=0;i<4;i++){
            if(i<1)continue;
            for(int j=4;j>i;j--){
                System.out.print(" ");
            }
            for(int j=0;j<2*i;j++){
                System.out.print("*");
            }
            System.out.println();
        }
    }
}

三、方法

四、数组

五、面向对象

六、异常

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/381416.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Java】代码中的安全漏洞解决合集(更新中)

汝之观览&#xff0c;吾之幸也&#xff01;本文主要讲解Java的一些安全漏洞&#xff0c;并且给出浅知的解决方案。 具体国内的风险可查看网址工业和信息化部网络安全威胁和漏洞信息共享平台 1、Spring Framework反射型文件下载漏洞&#xff08;CVE-2020-5421&#xff09; 漏洞…

Linux 进程:fork()与vfork()的对比

目录一、fork函数二、vfork函数1.函数的原理2.函数的隐患3.解决函数隐患的方法在Linux的进程学习中&#xff0c;常使用fork函数来创建子进程&#xff0c;但其实还有一个vfork函数也可以创建子进程。但是这两个函数的实现机制不同&#xff0c;fork函数使用了写实拷贝技术&#x…

Ubuntu 20搭建srs3.0

SRS官网&#xff0c;v3Home介绍&#xff0c;部署帮助。 1.创建一个srs项目文件夹 2.进入后用git命令拉取3.0release版本&#xff1a;git clone -b 3.0release https://gitee.com/ossrs/srs.git 3.进入srs/trunk目录打开终端输入命令&#xff1a;./configure 4.继续输入命令&a…

Python+tkinter添加滚动条

大家好&#xff0c;我是IKUN的真爱粉&#xff0c;有时候我们需要在tkinter上加滚动条&#xff0c;那么怎么制作呢&#xff0c;我们先看下面的视频展示效果&#xff0c;是不是你想要的 展示 感觉制作的略微粗糙&#xff0c;各位可以后期自己慢慢调整 创建滚动条重要的步骤是&a…

【C++进阶】四、STL---set和map的介绍和使用

目录 一、关联式容器 二、键值对 三、树形结构的关联式容器 四、set的介绍及使用 4.1 set的介绍 4.2 set的使用 五、multiset的介绍及使用 六、map的介绍和使用 6.1 map的介绍 6.2 map的使用 七、multimap的介绍和使用 一、关联式容器 前面已经接触过 STL 中的部分…

SAP 详解ST02

问&#xff1a;在st02中看到&#xff0c;Program和Export/Import的Swap出现红的了&#xff0c;这个是什么原因啊&#xff0c;是不是对系统的性能有影响啊&#xff0c;是否应该调整一些参数啊。要怎么调整呢&#xff1f; 复1&#xff1a;双击红色的部分就可以看到相应的参数修改…

【2023/图对比/无负样本】基于无负样本损失和自适应增强的图对比学习

如果觉得我的分享有一定帮助&#xff0c;欢迎关注我的微信公众号 “码农的科研笔记”&#xff0c;了解更多我的算法和代码学习总结记录。或者点击链接扫码关注【2023/图对比/无负样本】基于无负样本损失和自适应增强的图对比学习 周天琪,杨艳,张继杰等.基于无负样本损失和自适应…

CCNP350-401学习笔记(601-650题)

601、What is a characteristic of Cisco StackWise technology? A. It supports devices that are geographically separated. B. It is supported on the Cisco 4500 series. C. It combines exactly two devices.D. It uses proprietary cabling 602、Refer to the exhibi…

低代码开发平台真的靠谱吗?

低代码开发平台真的靠谱吗&#xff1f;这么跟你说吧&#xff1a; 你想用美图秀秀实现PS的修图效果但失败了&#xff0c;转头就说美图秀秀垃圾&#xff0c;是不是无理取闹你想用剪映实现PR的视频剪辑效果但失败了&#xff0c;转头就说剪映啥也不是&#xff0c;是不是在无理取闹…

操作指南:如何高效使用Facebook Messenger销售(一)

在销售方面&#xff0c; Facebook Messenger 是许多各种规模的企业的首选渠道。这篇文章将向您介绍使用 Messenger 作为销售渠道。我们还将指导您完成用智能客服工具SaleSmartly(ss客服)将您的 Facebook Messenger 销售更上一层楼。配图来源&#xff1a;SaleSmartly&#xff08…

JS#2 对象

一. Array对象定义var 变量名 new Array(元素列表);var 变量名 [元素列表];访问arr[索引] 值;注意JS数组类似于Java的集合, 长度, 类型都可变常用的属性和方法属性: length 数组元素的个数方法: push( ) 添加元素splice( ) 删除元素代码: <!DOCTYPE html> <html la…

day55-day56【代码随想录】二刷数组

文章目录前言一、字符串的排列&#xff08;力扣567&#xff09;【滑动窗口】二、找到字符串中所有字母异位词&#xff08;力扣438&#xff09;【滑动窗口】三、串联所有单词的子串&#xff08;力扣30&#xff09;【滑动窗口】****【hard】每日一题day55&#xff1a;合并相似的物…

面试题HTML篇(一)

目录 一、meta 标签可以做什么 四、行内元素、块级元素、空元素 元素之间的转换问题&#xff1a; 五、px,em,rem,vw,vh,rpx等单位的特性 六、替换元素和非替换元素 七、first-of-type和first-child有什么区别 八、doctype标签的作用 九、link标签和import标签的区别 十…

import “cv2“ could not be resolved pylance(reportMissingImports)

openCV系列文章目录 文章目录openCV系列文章目录前言一、错误原因二、解决方法1.在vscode&#xff1a;Python:Select Interpreter2.依然报错&#xff1a;cv2.error: OpenCV(4.7.0) D:\a\opencv-python\opencv-python\opencv\modules\highgui\src\window.cpp:1272: error: (-2:U…

InstructGPT论文精读

论文链接&#xff1a;https://arxiv.org/pdf/2203.02155.pdf 1 摘要 做的事&#xff1a; 1、标注了数据&#xff0c;问题和答案写出来&#xff0c;然后训练模型 2、收集数据集&#xff0c;排序模型的输出&#xff0c;使用强化学习训练这个排序的过程 效果层面来说&#xff1…

vant-list使用,请求接口之后会多几次load加页面(详细解释,动图演示)

页面实现效果&#xff1a;在页面中使用了van-tabs组件和van-list组件来实现页面布局和功能。问题描述&#xff1a;在第一个标签下&#xff0c;向下滚动page超过了2页之后&#xff0c;有点击tab切换标签&#xff0c;接口调用了多回。解决问题关键&#xff1a;loading和finished在…

爆文制造机!小红书热榜3个方向,告诉你选题诀窍!

我们知道&#xff0c;不论是达人创作内容&#xff0c;还是品牌制定Brief&#xff0c;都需要提前调研筛选海量信息&#xff0c;这时候如果有一个自己的内容素材库&#xff0c;就省事多啦。按照内容需求&#xff0c;我们可以按3个角度划分小红书内容素材&#xff1a;笔记类型、竞…

MyBatis的简单使用

MyBatis是一个优秀的持久型框架用于简化JDBC开发&#xff0c;JDBC的原生写法普遍都很麻烦&#xff0c;还要写原汁原味的sql语句&#xff0c;mybatis将很多东西都放到了配置文件里面然后用少量代码简化了免除了几乎所有的JDBC代码以及设定参数和获取结果集的工作。MyBatis 可以通…

使用D3绘制力导向图遇到的坑

目录1. 不同D3版本差异2. D3 V4版本绘制力导向图基本流程3. 跨域问题现象原因解决办法4. 异步赋值现象原因解决办法1. 不同D3版本差异 V3&#xff1a;通过d3.layout.force()将节点、连接线的数据转换成d3力导向图能够使用的数据结构 var force d3.layout.force().nodes(node…

哪些工具可以实现在线ps的需求

在线Photoshop有哪些工具可以选择&#xff1f;在 Adobe 的官网上就能够实现&#xff0c;很惊讶吧&#xff0c;其实 Adobe 官方推出了在线版本的 Photoshop 的&#xff0c;尽管目前还是 Beta版本&#xff0c;但其实也开放了蛮久了。编辑切换为居中添加图片注释&#xff0c;不超过…