Java基础语法闪过——纯小白
Java语法突击
笔者因为学校奇葩选课原因,需要学习Java,考试所迫和大伙一起交流复习下基础的语法内容,大家都一把拿下考试
观前提醒:本文整理的有些仓促了,简单几分钟看看Java有什么内容还好,如果有细致学习的需求推荐看一下廖雪峰的Java教程,跟着敲一敲代码,把基础打牢。
Java基本语法
程序结构
编写第一个Java程序 Hello_world
// 这里是注释
// 类是一个程序的基本单位,此处类名为Hello_world
public class Hello_world {
// 此处为类中的main方法
public static void main(String[] args) {
// java的打印函数
System.out.println("Hello, world!");
}
}
保存代码文件为hello_world.java
编译:javac hello_world.java
运行:java hello_world.java
数据类型
Java的数据类型和C/C++没有很大出入:
- 整数类型:byte,short,int,long
- 浮点数类型:float,double
- 字符类型:char
- 布尔类型:boolean
public static void main(String[] args) {
int a = 10;
// float类型需要加上f后缀,不加后缀的为double类型,不能赋给float。
float b = 3.14f;
char c = 'm';
boolean d = true;
变量和常量
常量
定义的变量前面加上final关键词,这个变量就变成了常量。
如:final double PI = 3.14;
为了便于区分,常量名通常全部大写。
var关键字
java编译器可以根据赋值语句自动推测出变量类型,使用var可以简化我们的代码,如var a = 100
运算符
这部分的内容和C/C++基本一致,包括运算顺序、自增自减、移位运算、位运算(与/或)、类型转换操作,不再赘述。
流程控制
输入和输出
java的输入和C语言基本相同,通过System.out.printf()可以实现占位格式化输出。
Java的输入要复杂一些,下面来看一个读取一个字符串和一个整形输入的代码:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in); // 创建Scanner对象
System.out.print("Input your name: "); // 打印提示
String name = scanner.nextLine(); // 读取一行输入并获取字符串
System.out.print("Input your age: "); // 打印提示
int age = scanner.nextInt(); // 读取一行输入并获取整数
System.out.printf("Hi, %s, you are %d\n", name, age); // 格式化输出
}
}
首先我们需要import导入Scanner包,
然后创建scanner对象,
最后调用scanner.nextLine()来实现读取命令行输入的信息。
if、switch、while、for
使用方式和C中一致,不再赘述。
数组
定义数组int[] nums = new int[5]
获取数组大小nums.length
Java中的数组一旦创建后大小就不可改变了,数组本身是引用类型。
下面列举一些常用的数组操作:
// 打印数组(除了for循环java中还有更方便的方式)
System.out.println(Arrays.toString(ns));
// 打印多维数组(除了多层循环)
System.out.println(Arrays.deepToString(ns));
// 数组排序
Arrays.sort(ns);
面向对象技术基础
如果大家之前接触过面向对象的高级语言,那么应该对面向对象的基础已经很熟悉了,这里简要概括几笔。
继承、抽象类和接口
// Student继承Person类,重写抽象类
class Student extends Person {
@override
public void run() {
System.out.println("run");
}
}
// java抽象类
abstract class Person {
public abstract void run();
}
// 接口定义
interface Person {
public abstract void run();
}
// 接口继承
class Student implements Person {
@override
public void run() {
System.out.println("run");
}
}
java使用extends来实现继承
接口interface是更抽象的抽象类,类中没有字段,只有抽象方法。接口定义使用interface关键字,接口继承使用implement关键字
io
异常处理
Java内置了一套异常处理机制,使用try...catch语句
public static void main(String[] args) {
try {
process1();
process2();
process3();
} catch (UnsupportedEncodingException e) {
System.out.println("Bad encoding");
} catch (IOException e) {
System.out.println("IO error");
} finally {
System.out.println("END");
}
}
多线程
Java创建多线程直接new就行了
// 多线程
public class Main {
public static void main(String[] args) {
Thread t = new Thread(new MyRunnable());
t.start(); // 启动新线程
}
}
class MyRunnable implements Runnable {
@Override
public void run() {
System.out.println("start new thread!");
}
}
Java基础语法闪过——纯小白的更多相关文章
- Java匹马行天下之JavaSE核心技术——Java基础语法
Java基础语法 一. 认识Java 1. Java 简介 java 是一种高级的面向对象的程序设计语言,使用Java语言编写的程序时跨平台的.从pc到手机,都有Java开发的程序和游戏,Java ...
- Java基础语法(2)-变量
title: Java基础语法(2)-变量 blog: CSDN data: Java学习路线及视频 1.什么是变量? 变量的概念 内存中的一个存储区域 该区域的数据可以在同一类型范围内不断变化 变量 ...
- Java基础语法(4)-流程控制
title: Java基础语法(4)-流程控制 blog: CSDN data: Java学习路线及视频 1.程序流程控制 流程控制语句是用来控制程序中各语句执行顺序的语句,可以把语句组合成能完成一定 ...
- Java基础语法(5)-特殊流程控制语句
title: Java基础语法(5)-特殊流程控制语句 blog: CSDN data: Java学习路线及视频 1.嵌套循环结构 将一个循环放在另一个循环体内,就形成了嵌套循环.其中,for ,wh ...
- java面向对象编程——第二章 java基础语法
第二章 java基础语法 1. java关键字 abstract boolean break byte case catch char class const continue default do ...
- Java基础语法(下篇)
Java基础语法(下篇) 内容概要: (1)函数的定义 (2)函数的特点 (3)函数的应用 (4)函数的重载 ...
- Java基础语法(上篇)
Java基础语法(上篇) 知识概要: (1)关键字的表示与规范 (2)标示符 (3)注释 (4 ...
- java——基础语法
java基础语法 1.关键字:java赋予特殊含义的单词. 2.标识符:程序中开发人员自定义的名词,例如:类名,函数名,变量名(注意事项:①不能以阿拉伯数字开头②不能采用关键字). 3.常量:固定的数 ...
- java基础语法(二)--单列模式
java基础语法(二)--单列模式 /** * 功能:单列模式 * @author Administrator * */ public class SingletonTest { public sta ...
- java基础语法(一)
java基础语法(一) 1.类是一种抽象的概念,对象是类的一种具体表示形式,是具体的概念.先有类,然后由类来生成 对象(Object).对象又叫做实例(Instance). 2.类由两大部分构成:属性 ...
随机推荐
- C++11新特性(二):语言特性
C++11新特性 nullptr空指针 nullptr空指针的使用可以规避掉以往设置为NULL的风险.NULL在编译器中常常被设置为0或者其它数字,此时判断指针是否为NULL,即判断指针类型是否能够等 ...
- 零基础学习人工智能—Python—Pytorch学习(九)
前言 本文主要介绍卷积神经网络的使用的下半部分. 另外,上篇文章增加了一点代码注释,主要是解释(w-f+2p)/s+1这个公式的使用. 所以,要是这篇文章的代码看不太懂,可以翻一下上篇文章. 代码实现 ...
- 关于 MemoryStream 的多次写入,模拟post请求,接收方 .net core web api无法读取到流数据,报 System.IO.IOException: Unexpected end of Stream, the content may have already be en read by another component.
主要是业务不熟害死人.记录一下.真想抽自己几个嘴巴子 先说结论,知道这个结论的下面文字都是废话: 一.new MemoryStream 的时候,如果需要分次写入,只能是像下面这样子 MemoryStr ...
- 消息队列的对比测试与RocketMQ使用扩展
消息队列的对比测试与RocketMQ使用扩展 本文的主要内容包括以下几个方面: 原有的消息技术选型 RocketMQ与kafka 测试对比 如何构建自己的消息队列服务 RocketMQ扩展改造 ...
- 调用ArrayList的add方法抛异常UnsupportedOperationException
调用ArrayList的add方法抛异常UnsupportedOperationException 对于一些想要把数组转成List的需求,可能会使用到Arrays.asList()获取List对象,但 ...
- 录音转文字SDK哪家强?
最近在做一款录音App,有一个模块是录音转文字功能,于是对比了市面上常见的API,国内做的比较大的主要有讯飞.腾讯.阿里.百度.华为. 讯飞 讯飞在国内做语音SDK是做的比较早的,翻译出来的准确率挺不 ...
- 记录JDK8到JDK17各个版本的更新重点
虽然大多数公司还是用的JDK8但是也要去了解和学习一下新得东西 ## JDK8新特性(2014年初)(LTS版本) 1.Lambda表达式 2.函数式编程 3.接口可以添加默认方法和静态方法,也就是定 ...
- markdown公式关系符
- duxui:基于Taro,兼容React Native、小程序、H5的多端UI库
duxui是duxapp官方开发的一款兼容多端的UI组件库,兼容小程序.H5.React Native,库中提供了60+的组件,覆盖大部分使用场景 它能帮助你通过统一的组件样式,快速完成多端应用的开发 ...
- px 、em、rem 的选取依据
1. px 像素(Pixel).绝对单位.像素px是相对于显示器屏幕分辨率而言的,是一个虚拟长度单位,是计算机系统的数字化图像长度单位,如果 px要换算成物理长度,需要 指定精度 DPI. 2. em ...