Java语言入门

发展历程

三大技术体系

  • JavaSE 标准版
  • JavaEE 企业版
  • JavaME 嵌入式版

Java语言特点

  1. 简单性
  2. 健壮性
  3. 面向对象
  4. 分布式
  5. 多线程
  6. 动态性
  7. 可移植性(跨平台)

Java语言怎么实现跨平台

通过jvm虚拟机跨平台,不同平台安装不同版本的;
跨平台的不是Java程序

Java两大核心机制

  1. Java虚拟机机制
  2. 垃圾回收机制

Java语言运行流程

jdk下载与安装,配置环境变量

https://www.oracle.com/java/technologies/javase-downloads.html

安装时,为了便于管理,新建一个Java文件夹存放jdkjre

配置环境变量
系统变量
JAVA_HOME:选择安装的jdk的路径,不用选择到bin
path:添加 %JAVA_HOME%/bin;

jdk、jre、jvm之间的关系

jdk安装后的文件结构

java、javac、javadoc

javac 编译器,将源程序转换成字节码
java 运行编译后的Java程序(.class)
javadoc 文档生成器,从源码注释中提取文档

常用doc命令

dir 列出目录

cls 清屏

cd 进入目录

开发工具eclipse,优化

修改字体

修改字符编码 -> utf-8


Java语法基础

转义符

名称 作用
\b 退格
\t 水平制表符Tab
\n 换行
\f 表格符
\r 回车
\’ 单引号
\” 双引号
\\ 反斜线
public static void main(String[] args) {System.out.println("\b退格");System.out.println("\t水平制表符Tab");System.out.println("\n换行");System.out.println("\f表格符");System.out.println("\r回车");System.out.println("\'单引号\'");System.out.println("\"双引号\"");System.out.println("\\反斜线");}

关键字

(1). 程序中已经被定义好的单词,具有特殊含义,都为小写。
(2). gotoconst,作为保留关键字未被使用

标识符

程序中,自定义的内容(类名、方法名、变量名),都为标识符

命名规则

  1. 只能有数字、字母、下划线、$,且不能用数字开头
  2. 不能使用关键字
  3. 大小写敏感
  4. 见名知意

建议
类名 每个单词首字母大写 大驼峰
方法名 第一个首字母小写 小驼峰
变量 所有字母小写

注释

单行注释以//开头 换行结束
多行注释以/*开头 以*/结束
文档注释以/**开头 以*/结束

常量

System.out.println(999);System.out.println(0.23);System.out.println('a');System.out.println("hello");System.out.println(true);
//    System.out.println(null);

变量

程序运行过程中会发生改变的量

语法格式:数据类型   变量名 = 数据值;
int age = 10;age = age + 1;
System.out.println(age);

8种数据类型及其默认值

整型:

  byte(字节): 1字节  8位   -128~127(-27~27-1)short(短整型):2字节  16位 -32768~32767(-215~215-1)int(整型):  4字节   32位long(长整型):8字节  64位

浮点型

  float(单精度):  4字节  32位double(双精度): 8字节  64位

布尔类型

  boolean: 1字节  8位   只有两个值:true、false

字符型

  char: 2字节  16位   ‘a’

java中引用数据类型

数组、枚举、类、接口、集合...

数据类型转换

自动转换(隐式转换):将取值范围小的类型自动提升为取值范围大的类型
强制转换(显式转换):将取值范围大的类型强制转换成取值范围小的类型

byte,short,char->int->long->float->double

数据类型转换必须满足以下规则:
(1) 不能对boolean类型进行类型转换;
(2) 不能把对象类型转换成不相关类的对象;
(3) 在把容量大的类型转换为容量小的类型时必须使用强制类型转换;
(4) 转换过程中可以导致溢出或损失精失;

byte a = 45;int s = a + 1;System.out.println("隐式转换byte->int");System.out.println(s);System.out.println(getType(s));System.out.println("强制转换int->byte");byte b1 = (byte) s;System.out.println(b1);System.out.println(getType(b1));System.out.println("隐式转换int->double");int sum = 10;double d = sum + 3.14;System.out.println(d);System.out.println(getType(d));System.out.println("强制转换double->int");int s1 = (int) d;System.out.println(s1);System.out.println(getType(s1));System.out.println("隐式转换char->int");char a1 = 'a';int int1 = a1;System.out.println(int1);System.out.println(getType(int1));System.out.println("强制转换int->char");char c1 = (char) int1;System.out.println(c1);
System.out.println(getType(c1));

算术运算符

+、-、*、/、%、++、--
int a = 20;System.out.println(a + 1);System.out.println(a - 1);System.out.println(a * 2);System.out.println(a / 2);System.out.println(a % 3);System.out.println(a++);
System.out.println(a--);

赋值运算符

=、+=、-=、*=、/=、%=
int a = 20;a += 10;System.out.println(a);a -= 5;System.out.println(a);a *= 2;System.out.println(a);a /= 5;System.out.println(a);a %= 2;
System.out.println(a);

比较运算符

==、>、<、>=、<=、!=
int a = 20;if (a == 20)System.out.println("ok");if (a > 10) {System.out.println("a大于10");}if (a < 5) {System.out.println("a小于5");}if (a >= 10) {System.out.println("a大于等于10");}if (a <= 20) {System.out.println("a小于或等于20");}if (a != 28) {System.out.println("a不等于28");
}

逻辑运算符

&&、||、&、|、!
int a = 10;if (a >= 5 && a <= 20) {System.out.println("a处于5至20之间");}if (a != 5 || a < 10) {System.out.println("a不等于5 或者 a小于10");}if (!false) {if (a > 5 & a < 10) {System.out.println("a大于5小于10");}if (a < 5 | a > 10) {System.out.println("a小于5或者a大于10");}
}

三元运算符

数据类型  变量名 = 布尔类型表达式?结果1:结果2
int a = 10;char c = a > 5 ? 'a' : 'A';
System.out.println(c);

二级制与十进制转换

十进制15 -> 二进制1111
二进制1110 -> 十进制148 4 2 1 四位依次相加

流程控制

if…else…语句

int a = 20;if (a > 10) {System.out.println("a>10");} else {System.out.println("a不大于10");
}

switch语句

switch(表达式) {case 常量表达式1:语句1;break;case常量表达式2:语句2;break;......case常量表达式n :语句n;break;default:    语句n+1;break;
}
int a = 20;switch (a) {case 20:System.out.println("a的值为20");break;default:System.out.println("a的值不等于20,为其他值");break;
}

for循环语句

for(初始化语句;判断条件语句;控制语句){循环体语句块;
}
int a = 20;for (int i = 0; i < 10; i++) {a += i;}
System.out.println("a的值:" + a);

while循环语句

while(判断条件语句){循环体语句块;控制语句;
}
int a = 20;while (a < 23) {a++;System.out.println(a);
}

do-while语句

do{循环体语句块;控制语句;
} while(判断条件语句) ;
do-while会先循环一次
int a = 20;do {a++;System.out.println(a);
} while (a < 23);

continue

结束当前循环,继续判断
for (int i = 1; i <= 10; i++) {if (i == 6) {continue;}System.out.print(i + "\t");
}

break

结束当前循环,不再判断for (int i = 1; i <= 10; i++) {if (i == 5) {break;}System.out.print(i + "\t");}

方法

方法就是程序的特殊功能,通常也可以叫函数、功能,方法只能被调用的时候才会执行

语法

修饰符  返回值类型  方法名(形参类型1 形参1,形参类型2 形参2,....){语句;
return 返回值;
}

修饰符可以有:public(公共的)、private(私有的)、protected(保护的)、default(默认不写的)
返回值类型:可以是基本数据类型和引用数据类型,也可以是无返回值类型void
return:返回值,当返回值是void的时候,return可以不写的

  public static int sum(int a, int b) {return a + b;}

重载

重载:在同一个类中,方法名相同,形参类型、参数个数不相同

  public static int sum(int a, int b, int c) {return a + b + c;}public static int sum(int a, int b) {return a + b;}

数组

数组:长度是固定的,存储相同类型元素的容器

数组分类

按维度分类

一维数组、二维数组、三维数组

按数据类型分类

基本数据类型数组:
byte、short、int、long、double、float、boolean、char
引用数据类型数组:
类、接口、枚举…

数组的声明(定义)

语法:

数据类型[]  数组名称=new 数据类型[长度];
String[] city1 = new String[3];
String[] city2 = new String[] { "北京", "上海", "武汉" };
String[] city3 = { "北京", "上海", "武汉" };

数组长度

length属性
int[] a = { 1, 2, 3, 4, 5 };
System.out.println(a.length);

遍历数组

int[] a = { 1, 2, 3, 4, 5 };System.out.println(a.length);for (int i = 0; i < a.length; i++) {System.out.print(a[i] + "\t");
}

选择排序

//选择排序public static void chooseOrder() {//写一个数组int[] arr = { 76, 23, 14, 76, 90, 61 };//写一个最小值元素位置int smallIndex;//遍历for (int i = 0; i < arr.length; i++) {//最小值是smallIndex = i;for (int j = 0; j < arr.length; j++) {if (arr[smallIndex] < arr[j]) {smallIndex = j;if (smallIndex != i) {//写一下临时变量int temp = arr[smallIndex];arr[smallIndex] = arr[i];arr[i] = temp;}}}}//遍历数据for (int x : arr) {System.out.print(x + "\t");}}

冒泡排序

//冒泡排序public static void maoPaoOrder(int[] arr) {for (int i = 0; i < arr.length; i++) {for (int j = 0; j < arr.length - 1; j++) {if (arr[j] > arr[j + 1]) {int temp = arr[j];arr[j] = arr[j + 1];arr[j + 1] = temp;}}}//遍历数据for (int x : arr) {System.out.print(x + "\t");}}

二维数组的语法

数据类型[ ][ ] 变量名称=new 数据类型[一维长度] [二维长度];

二维数组的创建和遍历

    int[][] arr1 = new int[1][1];arr1[0][0] = 23;arr1[0][1] = 12;int[][] arr2 = { { 23, 12, 89 }, { 54, 76, 90 } };
int[][] arr3 = new int[][] { { 23, 12, 89 }, { 54, 76, 90 } };
for (int i = 0; i < arr.length; i++) {for (int j = 0; j < arr[i].length; j++) {System.out.println(arr[i][j]);}
}

数组工具Arrays

Arrays.sort 数组排序
Arrays.equals 比较两个数组是否相等
Arrays.binarySearch 在排序好的数组中查找数值
Arrays.asList 把数组转换为List
int a[] = { 23, 43, 456 };int b[] = { 43, 456, 23 };Arrays.sort(a);for (int i : a) {System.out.println(i);}System.out.println(Arrays.equals(a, b));System.out.println(Arrays.binarySearch(a, 456));
System.out.println(Arrays.asList(a));

Java基础笔记(入门,语法基础,流程控制,数组)相关推荐

  1. 【Java 系列笔记】语法基础 + Spring + Spring MVC + SpringBoot + 数据结构

    Java 强化笔记目录 Java 语言基础 Java 架构师体系课程 一些课程 前端笔记:前端学习笔记 Java 语言基础 回头补基础(此基础非小白)系列,学校教的其实真的就是一些皮毛而已,怕是连门都 ...

  2. Java学习笔记(五)--流程控制

    文章目录 Java语言基础(三) 一.流程控制 1.1 复合语句 1.2 条件语句 1.2.1 if条件语句 二.switch多分支语句 三.循环语句 3.1 while 循环语句 3.2 do ·· ...

  3. 【Java学习笔记】JavaSE基础全程笔记

    前言 该文章为Java自学笔记:JavaSE基础全程笔记,导航部分 学习视频为https://www.bilibili.com/video/av250694651 Java基础语法 Java面向对象基 ...

  4. 【 js基础 Day2】js的流程控制:分支语句,循环.顺序结构

    复习 JavaScript简称为JS JavaScript是什么? 是一门脚本语言:不需要编译,直接运行 是一门解释性的语言:遇到一样代码就解释一行代码 C#语言是一门面向对象的语言,也是编译语言,是 ...

  5. java玩转区块链-基础篇-solidity语法-基础类型

    java玩转区块链-基础篇-solidity语法-基础类型 java环境配置 代码准备 maven 完整solidity 执行步骤 基础类型 布尔类型 类型标识: 字面常量值: 运算符: 短路规则: ...

  6. python while语法结构_python语法之流程控制(if while for)

    一.python语法之流程控制 1.1什么是流程控制? 流程控制即控制流程,具体指控制程序的执行流程,而程序的执行流程分为三种结构:顺序结构(之前我们写的代码都是顺序结构).分支结构(判断).循环结构 ...

  7. [Java入门笔记] Java语言基础(四):流程控制

    2019独角兽企业重金招聘Python工程师标准>>> 流程控制指的是在程序运行的过程中控制程序运行走向的方式.主要分为以下几种: 顺序结构 顺序结构,顾名思义,是指程序从上往下逐步 ...

  8. java 基本语法与流程控制_Java基础语法之控制流程

    Java基础语法之控制流程 语言的流程控制提供了对程序步骤的基本方法. 三大流程控制语句:顺序.选择.循环 复合结构 复合结构是以一个区块为单位的,由"{"开始"}&qu ...

  9. 2.Java基础之概述-流程控制+数组+IDEA基本使用+程序调试

    1.流程控制 1.1 流程是什么 生活中处处都有流程:比如你们大学报到 程序就是为了解决生活的问题,程序也有流程 1.2 顺序流程 从上到下,一条直线走下去 1.3 分支结构 1.3.1 if单分支 ...

最新文章

  1. 自适应_自适应信号分解综述
  2. gitosis使用笔记
  3. php 数组 指针,php之数组指针详解
  4. 计算机应用基础在线测试01,计算机应用基础在线测试(全部正确).pdf
  5. javascript中对变量类型的推断
  6. java 实现压缩zip的几种方案
  7. bootstrap表格遍历_BootStrap实现带有增删改查功能的表格(DEMO详解)
  8. Python 正则表达式(二)
  9. 1.中小型企业通用自动化运维架构 -- 自动化运维流程
  10. python基础——使用list和tuple
  11. 苹果测试网速软件,Mac 网速测试工具 SpeedTest by Ookla
  12. 论文《Efficient Large-Scale Stereo Matching》学习
  13. 如何安装红旗linux6.0声卡驱动
  14. CLSR 11.2散列表
  15. 深度学习下的电商商品推荐
  16. 实验4-1-5 统计素数并求和 (20 分)
  17. Ad-hoc Testing(随机测试)
  18. 【GO富集分析】GO注释文件爬取
  19. 基于PHP排课和选课系统设计与实现 开题报告
  20. Vue的Watch事件-如何监听对象的属性(字段中间带有点)

热门文章

  1. Bert需要理解的一些内容
  2. 生物信息「知识图谱」
  3. Oracle Database 11g的使用
  4. java+long.builder_Java LongStream.Builder accept()用法及代码示例
  5. three.js 加载显示文字
  6. 十、调度算法----时间片轮转、优先级调度、多级反馈队列
  7. 移动硬盘插入提示格式化
  8. jstatd,VisualVM使用和报错解决:Could not create remote object--java.security.AccessControlException
  9. linux tomcat 进程杀掉_Linux-(一)常用命令总结
  10. linux ps -aux 中stat含义: