JAVA基础学习——基本常识

2024-03-15 02:38

本文主要是介绍JAVA基础学习——基本常识,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一下大多数内容来自尚学堂:www.sxt.cn 只是供自己学习,留做笔记,侵删。

DAY one

常用的dos命令
操作名称操作含义
md创建目录
dir列出当前目录下的文件以及文件夹
cd删除目录
cd…退回到上一级目录
cd\退回到根目录
del删除文件
echo创建文件,如echo haha>1.txt

注:
1.如果del后面接的是目录名,则表示删除目录下的所有文件。

知识点

1.Java语言的特点:跨平台性,通过JVM来实现。
2.JRE 包括java虚拟机和java程序所需的核心类库等,想开发一个java程序,安装一个JRE即可。
3.JDK是给Java开发人员使用的,其中包含了Java的开发工具,也包含了JRE。编译工具Java.exe,打包工具jar.exe等。
4.java环境参数的配置(之前配置过了)
(因为一些原因,换了一个系列的视频用于学习)
————————分割线———————————————

数据类型
基本数据类型数值型整数类型byte short int long 分别占1 2 3 4 字节
数值型浮点型 double float
字符型char两个字节
布尔型boolean 占一位
引用数据类型类class
四个字节接口interface
数组
java语言整型的四种表现形式
十进制99、56
八进制以0开头015
十六进制要求0x或0X开头0x11001
二进制要求0b或0B开头0b10110011

注:
1.长整型常数在数字后要写一个大写的L。
2.float x=3.14F;
3.double x=3.14或double x=3.14D;
4.double x=314E-2;
5.浮点型是不精确的,一定不要用于比较,如果要用比较的话要使用BigDecimal。但是同类型之间好像是可以的,自己试了一下两个数据类型都是double,然后可以相比较。
6. ‘a’+‘b’输出结果为195,但如果写成 “”+‘a’+‘b’就输出ab,""+‘a’+’\n’+‘b’表示a和b输出的时候换行。""+‘a’+’\t’+'b’表示输出为a b。
7.java里面0和1不能代表false和true。

DAY two

图片来自尚学堂

1.运算符分类

图片来源:尚学堂

2.优先级

在这里插入图片描述

3.

if语句 switch语句 循环语句for while do-while 和c++的写法一样,这里不多赘述。

4.一些基本写法
package luogu;
import java.io.*;
import java.util.*;//用于输入
import java.math.*;//BigDecimal要用到
public class Demon1421 {public static void main(String[] args) throws Exception{Scanner cin=new Scanner(System.in);//用到了io流int a=cin.nextInt();int b=cin.nextInt();//整数输入的写法String s=cin.nextLine();//字符串要用nextLing输入,并且String的s要大写int c=a*10+b;int d=c/19;double f=3.14;double g;g=(314.0/100);BigDecimal x=new BigDecimal(f);BigDecimal xx=new BigDecimal(g);System.out.println(x.equals(xx));if(f==g) System.out.println(true);else System.out.println(false);System.out.println(f==g);System.out.println(g);System.out.println(f);System.out.println(d);}
}
5.outer 语句的用法
package 基础语法;public class Demon1 {public static void main(String[] args) {// TODO Auto-generated method stubouter: for(int i=101;i<150;++i) {for(int j=2;j<i/2;++j) {if(i%j==0) continue outer;}System.out.println(i+" ");}}}
6.语句块

相当于一个过程,里面的变量都为局部变量,不能定义主程序中出现过的重复的变量。该过程进行后就不会再次进行,也就是不能反复调用。

7.方法

方法就是一段用来完成特定功能的代码片段,类似于其它语言的函数。

方法用于定义该类或该类的实例的行为特征和功能实现。 方法是类和对象行为特征的抽象。方法很类似于面向过程中的函数。面向过程中,函数是最基本单位,整个程序由一个个函数调用组成。面向对象中,整个程序的基本单位是类,方法是从属于类和对象的。

public class Test20 {/** main方法:程序的入口 */public static void main(String[] args) {int num1 = 10;int num2 = 20;//调用求和的方法:将num1与num2的值传给add方法中的n1与n2// 求完和后将结果返回,用sum接收结果int sum = add(num1, num2);System.out.println("sum = " + sum);//输出:sum = 30//调用打印的方法:该方法没有返回值print();}/** 求和的方法 */public static int add(int n1, int n2) {int sum = n1 + n2;return sum;//使用return返回计算的结果}/** 打印的方法 */public static void print() {System.out.println("北京尚学堂...");}
}
8.方法的重载

重载的方法,实际是完全不同的方法,只是名称相同而已!

  构成方法重载的条件:1.不同的含义:形参类型、形参个数、形参顺序不同2.只有返回值不同不构成方法的重载3.只有形参的名称不同,不构成方法的重载
public class Test21 {public static void main(String[] args) {System.out.println(add(3, 5));// 8System.out.println(add(3, 5, 10));// 18System.out.println(add(3.0, 5));// 8.0System.out.println(add(3, 5.0));// 8.0// 我们已经见过的方法的重载System.out.println();// 0个参数System.out.println(1);// 参数是1个intSystem.out.println(3.0);// 参数是1个double}/** 求和的方法 */public static int add(int n1, int n2) {int sum = n1 + n2;return sum;}// 方法名相同,参数个数不同,构成重载public static int add(int n1, int n2, int n3) {int sum = n1 + n2 + n3;return sum;}// 方法名相同,参数类型不同,构成重载public static double add(double n1, int n2) {double sum = n1 + n2;return sum;}// 方法名相同,参数顺序不同,构成重载public static double add(int n1, double n2) {double sum = n1 + n2;return sum;}//编译错误:只有返回值不同,不构成方法的重载public static double add(int n1, int n2) {double sum = n1 + n2;return sum;}//编译错误:只有参数名称不同,不构成方法的重载public static int add(int n2, int n1) {double sum = n1 + n2;         return sum;}  
}
9.递归
public class Test22 {public static void main(String[] args) {long d1 = System.currentTimeMillis();  //学到一个新的函数currentTimeMills,应该是类似时间钟的函数,记录所用时间System.out.printf("%d阶乘的结果:%s%n", 10, factorial(10));long d2 = System.currentTimeMillis();System.out.printf("递归费时:%s%n", d2-d1);  //耗时:32ms}/** 求阶乘的方法*/static long  factorial(int n){if(n==1){//递归头return 1;}else{//递归体return n*factorial(n-1);//n! = n * (n-1)!}}
}

这篇关于JAVA基础学习——基本常识的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/810524

相关文章

HarmonyOS学习(七)——UI(五)常用布局总结

自适应布局 1.1、线性布局(LinearLayout) 通过线性容器Row和Column实现线性布局。Column容器内的子组件按照垂直方向排列,Row组件中的子组件按照水平方向排列。 属性说明space通过space参数设置主轴上子组件的间距,达到各子组件在排列上的等间距效果alignItems设置子组件在交叉轴上的对齐方式,且在各类尺寸屏幕上表现一致,其中交叉轴为垂直时,取值为Vert

Ilya-AI分享的他在OpenAI学习到的15个提示工程技巧

Ilya(不是本人,claude AI)在社交媒体上分享了他在OpenAI学习到的15个Prompt撰写技巧。 以下是详细的内容: 提示精确化:在编写提示时,力求表达清晰准确。清楚地阐述任务需求和概念定义至关重要。例:不用"分析文本",而用"判断这段话的情感倾向:积极、消极还是中性"。 快速迭代:善于快速连续调整提示。熟练的提示工程师能够灵活地进行多轮优化。例:从"总结文章"到"用

JVM 的类初始化机制

前言 当你在 Java 程序中new对象时,有没有考虑过 JVM 是如何把静态的字节码(byte code)转化为运行时对象的呢,这个问题看似简单,但清楚的同学相信也不会太多,这篇文章首先介绍 JVM 类初始化的机制,然后给出几个易出错的实例来分析,帮助大家更好理解这个知识点。 JVM 将字节码转化为运行时对象分为三个阶段,分别是:loading 、Linking、initialization

Spring Security 基于表达式的权限控制

前言 spring security 3.0已经可以使用spring el表达式来控制授权,允许在表达式中使用复杂的布尔逻辑来控制访问的权限。 常见的表达式 Spring Security可用表达式对象的基类是SecurityExpressionRoot。 表达式描述hasRole([role])用户拥有制定的角色时返回true (Spring security默认会带有ROLE_前缀),去

浅析Spring Security认证过程

类图 为了方便理解Spring Security认证流程,特意画了如下的类图,包含相关的核心认证类 概述 核心验证器 AuthenticationManager 该对象提供了认证方法的入口,接收一个Authentiaton对象作为参数; public interface AuthenticationManager {Authentication authenticate(Authenti

Spring Security--Architecture Overview

1 核心组件 这一节主要介绍一些在Spring Security中常见且核心的Java类,它们之间的依赖,构建起了整个框架。想要理解整个架构,最起码得对这些类眼熟。 1.1 SecurityContextHolder SecurityContextHolder用于存储安全上下文(security context)的信息。当前操作的用户是谁,该用户是否已经被认证,他拥有哪些角色权限…这些都被保

Spring Security基于数据库验证流程详解

Spring Security 校验流程图 相关解释说明(认真看哦) AbstractAuthenticationProcessingFilter 抽象类 /*** 调用 #requiresAuthentication(HttpServletRequest, HttpServletResponse) 决定是否需要进行验证操作。* 如果需要验证,则会调用 #attemptAuthentica

Spring Security 从入门到进阶系列教程

Spring Security 入门系列 《保护 Web 应用的安全》 《Spring-Security-入门(一):登录与退出》 《Spring-Security-入门(二):基于数据库验证》 《Spring-Security-入门(三):密码加密》 《Spring-Security-入门(四):自定义-Filter》 《Spring-Security-入门(五):在 Sprin

Java架构师知识体认识

源码分析 常用设计模式 Proxy代理模式Factory工厂模式Singleton单例模式Delegate委派模式Strategy策略模式Prototype原型模式Template模板模式 Spring5 beans 接口实例化代理Bean操作 Context Ioc容器设计原理及高级特性Aop设计原理Factorybean与Beanfactory Transaction 声明式事物

【前端学习】AntV G6-08 深入图形与图形分组、自定义节点、节点动画(下)

【课程链接】 AntV G6:深入图形与图形分组、自定义节点、节点动画(下)_哔哩哔哩_bilibili 本章十吾老师讲解了一个复杂的自定义节点中,应该怎样去计算和绘制图形,如何给一个图形制作不间断的动画,以及在鼠标事件之后产生动画。(有点难,需要好好理解) <!DOCTYPE html><html><head><meta charset="UTF-8"><title>06