首页 > 编程语言 >Java基础

Java基础

时间:2022-11-03 00:45:56浏览次数:73  
标签:arr Java int 基础 static 数组 java

常见快捷键在这里插入图片描述

全选 ctrl+a 复制ctrl+c 粘贴 ctrl+v 撤销 ctrl+z
保存 ctrl+s 关闭窗口alt+F4 永久删除 shfit+Delete

常用DOS命令

盘符切换 d;
查看当前目录下的所有文件 dir
切换目录 cd change directory
cd … 上一级目录

清理屏幕 cls (clear scree)
退出终端 exit
查看电脑ip ipconfig
打开应用 计算器 calc 画图 mspaint 记事本 notepad
ping命令 ping www.baidu.com

文件操作
创建目录 md 目录名
rd 删除子目录 rd /S (删除所有子目录和文件) /Q(删除不需确认)
需要目录下为空 不在当前子目录
切换 cd cd 目录名
删除文件 del 文件名

java的诞生与初识

1.语法像c
2.没有指针
3.没有内存管理
4.真正可移植性,编写一次,到处运行(只需你安装了JVM即可)
5.面向对象
6.类型安全
7.高质量的类库

Java初生

Java2 标准版(j2SE):占领桌面
Java2 移动版(J2ME):占领手机 ==> 移动互联网未兴起 运行还需要安装虚拟机
Java2 企业版(J2EE):占领服务器

*注意:三高:高可用 高性能 高并发
webblogic(java开发的):(事务 安全 权限管理解放 专注于业务实现)

Java特性和优势

简单性
面向对象
可移植性
高性能–即时编译
分布式–专门解决TCP/IP的协议
动态性–java反射机制实现动态性
多线程
安全性–java在安全性上加入防病毒防篡改
健壮性–每次运行对于内存进行检查 确认合法

JDK JRE JVM

jdk:java开发的工具包
jre:运行时的环境
jvm:java虚拟机 模拟一个cpu执行java程序 屏蔽底层系统的差别
在这里插入图片描述

安装JDK

windows/Linux/macOS(需要注册oracle账户 同意协议即可)
https://www.oracle.com/java/technologies/downloads/
环境配置:

在环境变量添加
JAVA_HOME jdk安装路径
在这里插入图片描述

PATH
在这里插入图片描述

Java的编译型和解释型

解释型:一行一行解释给计算机(出错行来过)

编译型:全部翻译好给计算机(出错了从头来过)

Java运行机制

1.源程序(.java文件)
2.Java编译器编译成字节码(.class)
3.类装载器:将字节码文件加载
4.字节码校验码:检查语法的问题
5.操作系统平台执行
在这里插入图片描述

IDEA安装

Java基础语法

注释

// 单行注释
// 多行注释
/
**/ 注解 带有功能的注释

标识符和关键字

数据类型与类型转换

变量、常量、作用域

final

运算符

包机制、JavaDoc

一、包的概念

包:是一个命名空间,它是一种松散的具有相似功能 的类与接口的集合。是java管理 类与接口的有效机制。在一个包中的类在默认情况下可以相互访问,称之为包访问性

包语句的语法格式

package pkg1[.pkg2[pkg3]]

一般使用公司域名倒置作为包名

域名.公司名.项目名.模块名

导入某个包成员

import pkg1[.pkg2[pkg3]].(classname|*);

Java流程控制

用户交互

顺序结构

选择结构

循环结构

for 加强循环

break & continue

goto label:语句

练习:计算器

Debug

Java方法详解

高内聚低耦合

何谓方法

在类中定义的一些用于实现某些功能的

方法的定义及调用

//基本定义
//访问修饰符(public) 非访问修饰符(static) 返回值类型 方法名(形参){ 方法体/函数体 }
public static void add(String args){
    ;
}

//调用 方法名(实参)
add();

方法的重载

一个类中有多个相同名字的方法 但是参数列表 顺序 类型不一样
规则:
1.同一类中
2.相同名字
3.形式参数(个数,顺序,类型不同)
4.返回值类型不同不足以构成

仅仅参数变量名称不同是不可以的。
跟成员方法一样,构造方法也可以重载。
声明为final的方法不能被重载。
声明为static的方法不能被重载,但是能够被再次声明。

命令行传参

相对于main(主函数)
一个程序你希望在运行它的时候再传递给它消息,通过命令行参数给main函数实现
javac 文件名.java 编译
java 文件名 命令行参数1 参数2.

public static Class ClassName(){
    public static void main(String args){}  // arr就是用于接收命令行参数的
}

可变参数

在函数形参的数据类型后
int… 代表可以接收多个参数 相当于一维数组

public static void fun1(int... i){}

递归

递归就是:自己调用自己

好处:可以使用简单的程序实现一些复杂的问题,将大型复杂问题简单化,使用递归减少重复复杂的计算,大大减少了程序的代码量。

坏处:不断在栈中开辟空间,有可能会栈溢出

条件:
递归头:什么时候不调用自身(临界条件)
递归体:什么时候需要调用自身(未到达临界点)

public static void add(){
    //递归头 
    //递归体
}

数组

数组概述

数组:一组相同类型数据的有序组合
访问:通过下标访问每个数组元素:(index从0开始)

数组声明和创建

//声明
int[] arr;//主流
int arr[]; // 不推荐 这个是为了让c/c++的程序员能够更快上手java

//创建
//静态初始化 创建+赋值
int[] arr = {数组元素};
//动态初始化 包含默认初始化(默认为0)
datatype[] arr = new datatype[arr_size]; //长度固定 创建后不可改变
//默认初始化 元素相当于类的实例变量 因此数组一旦被分配空间,其中每个元素也会按照实例变量的方式被隐式初始化

//获取数组长度 
arrays.length

数组特点

  • 长度是确定的,数组一旦被创建,大小不可改变
  • 元素必须是相同类型
  • 数组中元素可以是任何数据类型,包括基本和引用数据类型
  • 数组本身就是对象,数组元素相当于对象的成员变量,Java中的对象存放在堆中

下标越界

数组下标从0开始,数组最后一个元素下标length-1
数组越界,抛出异常ArrayIndexOutBoundsException:数组下标越界异常

数组使用

  • For-Each循环
    在这里插入图片描述 - 数组作为方法入参
  • 数组作为返回值
    在这里插入图片描述

多维数组

int[][] arr = {{0,1,2},{2,4,5}};
int[][] arr = new int[3][3];

Arrays类

import java.util.Arrays
排序数组:sort(arr);
填充数组:fill(arr,fill_val)--->fill(arr,form_index,to_index,fill_val);
比较数组:equals(arr1,arr2);
查找数组元素:binargSearch() 对排序好的数组进行二分查找

八种排序算法

原文链接:八种常见排序算法

Java内存

详解请看:栈堆方法区

面向对象

详情:本文链接:面向对象
请添加图片描述
有什么不足可以邮箱留言进行改进
@[email protected]

标签:arr,Java,int,基础,static,数组,java
From: https://www.cnblogs.com/worker618/p/16853066.html

相关文章

  • Java RMI分析与利用
    一.RMI介绍RMI(RemoteMethodInvocation)远程方法调用,顾名思义,是一种调用远程位置的对象来执行方法的思想。在Java中,我们通常传递一个完整的对象,这个对象既包含数据......
  • 关于Java的volatile关键字、内存屏障的思考
    内存屏障就是一种屏障指令,在X86架构中,指的是加了“lock前缀”的汇编指令在执行时会让CPU或编译器在对内存进行操作的时候,严格按照一定的顺序来执行。也就是说......
  • Java反射
    一Java安全可以从反序列化漏洞开始说起,反序列化漏洞⼜可以从反射开始说起正是反射使得Java拥有了动态特性,对象可以通过反射获取他的类,类可以通过反射拿到所有⽅法(包括私......
  • 学习Java的第三天 运算符
    运算符算术运算符注意事项需要注意的是i++和++i的区别i++运行完这行代码后在进行自增或自减++i在运行这行前就进行自增或者自减运算结果的数据类型为参与运算的......
  • Java函数式编程:二、高阶函数,闭包,函数组合以及柯里化
    承接上文:Java函数式编程:一、函数式接口,lambda表达式和方法引用这次来聊聊函数式编程中其他的几个比较重要的概念和技术,从而使得我们能更深刻的掌握Java中的函数式编程。......
  • java生成pdf
    参考链接https://blog.csdn.net/weixin_39806100/article/details/86616041https://www.cnblogs.com/next-yrz/p/10134670.htmlhttps://www.likecs.com/show-306660785.......
  • java----GUI编程
    1packagecom.cilinmengye.HouseWork5;23importjavax.swing.*;4importjava.awt.*;5importjava.awt.event.ActionEvent;6importjava.awt.event.Actio......
  • java中string类的使用
    packagecom.te.jdkapi;/*字符串不可变。一经初始化就不会改变*/publicclassStudy_String{publicstaticvoidmain(String[]args){Stringa="1......
  • Java学习——10.02
     不得不说,Java真的很好上手,只不过搭建环境真的难。今天的话搞了一个喜欢的Java开发背景图,看着就心情愉悦。再加上今天idea学生认证下来,就很棒!    废话不多说进入正......
  • javascript - 练习题(若干)
    慢慢收集一些习题、考题练习1问:X,Y,Z分别是多少?varx=1,y=z=0;functionadd(n){returnn=n+1;}y=add(x);functionadd(n){returnn=n+3;}z=add(x);conso......