Java入门之基础程序设计

article/2025/10/9 20:27:44

1、Java语言特点了解

1. java语言:

有些语言提供了可移植性、垃圾收集等机制,但是没有提供一个大型的库。如果想要有酷炫的绘图功能、网络连接功能或者数据库存取功能,就必须动手编写代码。Java具备所有这些特性,它是一种功能齐全的出色语言,是一个高质量的执行环境,还提供了一个庞大的库。

2. java特点:

(1)简单性:Java语言是C++语法的一个“纯净版本”。没有头文件、指针运算等。

(2)面向对象:面向对象设计是一种程序设计,将重点放在数据(对象)和对象的接口上。

(3)分布式:Java有一个丰富的例程库,用于处理像HTTP和FTP之类的TCP/IP协议。Java应用程序能够通过URL打开和访问网络上的对象,其便捷程度就好像访问本地文件一样。

(4)健壮性:Java编译器能够检测许多其它语言中仅在运行时才能够检测出来的问题。(花几个小时找指针bug很难受吧!)。

(5)安全性:运行时堆栈溢出,这是蠕虫和病毒常用的攻击手段。破坏自己的进程空间之外的内存。未经授权读写文件。

(6)体系结构中立

(7)可移植性:二进制数据以固定的格式进行存储和传输,消除了字节顺序的困扰。字符串则采用标准的Unicode格式存储。Java中的int永远为32位整数。

(8)解释性

(9)高性能

(10)多线程:多线程可以带来更快的交互响应和实时行为。如今,我们非常关注并发性,因为摩尔定律即将走到尽头。我们不再追求更快的处理器,而是着眼于获得更多的处理器,Java时第一个支持并发程序设计的主流语言。

2、Java基本数据类型

2.1标识符和关键字

2.1.1一个简单的Java应用程序

//简单写Hello,World!
public class FirstText {public static void main(String[] args) {System.out.println("We will not use 'Hello,World!'");}
}

2.1.2注释

1. 第一种单行注释://

2. 第二种多行注释:/*

/(注释不能嵌套!)

3. 第三种文档注释:以/**开始,以

/结束

2.1.3标识符命名规范

  • 标识符由字母、下划线_、美元符号$和数字组成,长度不受限制。
  • 标识符的第一个字符不能时数字。
  • 标识符不能是关键字。
  • 标识符不能是true、false和null
  • 标识符区分大小写。

2.1.4Unicode字符集

Java语言使用Unicode字符集,可识别65536个字符。Unicode字符集的前128个字符刚好是ASCII码,大部分国家的“字母表”都是Unicode字符集中的一个字符。Java所谓的字母包括了世界上大部分语言中的“字母表”。

2.1.5关键字

关键字不能作为标识符来命名

关键字有:abstract、boolean、break、byte、int、if、char等等

2.2基本数据类型

  • 逻辑类型:boolean 值只能为true或者false
  • 整数类型:byte、short、int、long
  • 字符类型:char
  • 浮点类型:float、double
  • NaN(不是一个数字)
类型字节数取值范围
int4字节-2147483648 ~ 2147483647
short2字节-32768 ~ 32767
long8字节-9223372036854775808 ~ 9223372036854775807
bye1字节-128 ~ 127

long型常量后缀l或者L表示 :long a = 120L

float型常量后缀f或者F表示:float b = 123.345f (保留8位有效数字)

2.3基本类型转换

数据转换按照精度从低到高排列:

byte short char int long float double

1.当把级别低的变量的值赋给级别高的变量时,系统会自动完成数据类型的转换:

public class FirstText {public static void main(String[] args) {int x = 50;float y;y = x;//输出y将是 50.0}
}

2.当把级别高的变量的值赋给级别低的变量时,必须使用类型转换运算:(类型名)要转换的值;

public class FirstText {public static void main(String[] args) {int x = (int)34.89;long y = (long)56.77F;int z = (int)1999L;//输出 x y z的值,结果是 34、56、1999、类型转换运算的结果的精度低于原数据的精度//因为强制类型转换通过截断小数部分将浮点值转换为整型。//如果想对浮点数进行舍入运算,以便得到最接近的整数,可以使用Math.round方法。`double x = 9.997;int n =(int) Math.round(x);`}
}

2.4运算符

2.4.1自增自减运算符

只需要记住a++和++a

区别:a++是先用a 然后再自增,可以理解为后自增,而++a是 先自增后用a,可以理解为先自增

2.4.2逻辑运算符

&与&&运算结果相同

当符号左边是false时,&继续执行符号右边计算

&&不执行。 二者都为false

|与|| 当左边为flase二者都会执行

当左边为true时,|继续执行右边得运算,||不再执行右边运算

instanceof运算符

instanceof运算符是二目运算符,左面的操作元是一个对象,右面是一个类。

当左边的对象是右边的类或者子类创建的对象时,该运算符结果位true,否则是false。

2.4.3三元表达式

三元表达式非常简洁好用:

条件 ? 表达式1:表达式2

x<y?x:y 如果x<y成立,则取x,否则取y

3、输入与输出数据

3.1.1输入基本型数据

Scanner scan = new Scanner(System.in);

public class FirstText {public static void main(String[] args) {Scanner scan = new Scanner(System.in);int a = scan.nextInt();byte b = scan.nextByte();double c = scan.nextDouble();String d = scan.next();}
}

3.1.2输出基本数据类型

System.out.println(a);

out可以使用printf()方法(类似C语言中的printf()函数)

System.out.printf("%d\n",a);

拓展:文件的输入与输出

从文件读取内容:

Scanner in = new Scanner(Path.of("C:\\myfile.txt"),StandardCharsets.UTF_8);

写入文件:

PrintWriter out = new PrintWriter("C:\\myfile.txt",StandardCharsets.UTF_8);

4、字符串

Java字符串就是Unicode字符序列。

String a = ""; //空串

4.1子串

String类的substring()方法可以从一个较大的字符串提取一个子串。

public class FirstText {public static void main(String[] args) {String a ="Hello";String sub = a.substring(0, 3);System.out.println(sub);//输出结果为 Hel//substring截取范围 [0,3) 左闭右开。}
}

4.2拼接

字符串的拼接在java中非常简单:使用 +号连接两个字符串即可

public class FirstText {public static void main(String[] args) {String a ="Hello";String b ="World";System.out.println(a+b+"!");
//输出结果为 HelloWorld!}
}

4.3不可变字符串

String类没有提供修改字符串中某个字符的方法。如果希望修改字符串的内容,不能直接操作。但是在java中我们可以灵活多变:若想将"HelloWorld"---->"HelloWorpp"

用字符串截取办法截取"HelloWor" 再拼接上 + "pp"即可完成

public class FirstText {public static void main(String[] args) {String a ="HelloWorld";String b =a.substring(0,8);System.out.println(b + "pp");
//输出结果为"HelloWorpp"}
}

4.4空串和null串

空串""是长度为0的字符串,可以用如下方法检查是否为空串

if(str.length() == 0)或者if(str.equals(""))

空串和null是不一样的,检查是否为null方法

if(str == null))

注意:如果再一个null值上调用方法,会出现错误!

5、if、while、for、switch语句以及break、continue用法

5.1if、while、for、switch

if条件语句用法格式:

if(表达式){

若干语句;

}

if-else语句格式:

if(表达式){

若干语句;

}else {

若干语句;

}

switch开关语句

public class FirstText {public static void main(String[] args) {switch (表达式){case 常量值1:若干语句;break;case 常量值2:若干语句;break;case 常量值n:若干语句;break;default:若干语句;}}
}

case标签可以是:

  • 类型为char、byte、short、或者int的常量表达式
  • 枚举常量
  • 字符串字面量
    do-while循环语句:
    do{
    若干语句;
    }while(表达式);
    while语句格式:
    while(表达式) {
    若干语句;
    }
    for语句的语法格式:
    for(表达式1;表达式2;表达式3){
    若干语句
    }

5.2中断流程控制break、continue

  1. break

    作用:可以跳出当前循环

    2.continue

    作用:使程序重新开始循环

5.3大数

如果基本的整数和浮点数不能满足下需求,那么可以使用java.math包中的两个类:BigInteger和BigDecimal

BigInteger a = new BigInteger("2222222222222222222222222222222222222222547546235345345");

大数其实就是将它转换成了字符串的形式表达,大数的加减乘除运算要用这个方法:

BigInteger c = a.add(b); //c = a+b

6、数组

6.1数组声明

int[] a;
int a[];
int[] a = new int[100]
int[] a = new int[]{1,2,3,4,5,6,7};

数组的声明形式有很多样,但要记住长度为 0的数组和null 是不一样的

new arr[0]或者new arr[]{} 都可以表示长度为0

6.2数组元素

  • 创建一个数字数组是,所有元素都初始化为0
  • boolean数组的元素会初始化为false
  • 对象数组的元素则初始化为一个特殊值null,表示这些元素还未存放任何对象。字符串也如此
    再次强调不要用null的值去调方法,会报错!!

6.3for each循环

java中有一种增强for循环,格式如下:

for(类型 变量:集合){

sout(变量);

}

public class FirstText {public static void main(String[] args) {int[] a = new int[]{1, 2, 3};for (int x : a) {//增强for eachSystem.out.println(a);}for(int i=0; i < a.length;i++){System.out.println(a[i]);}}
}

增强for循环的缺点是 无法对下标进行操作,常用于对集合的遍历使用。

若想进行下标操作,推荐使用传统for循环

6.4数组的拷贝与排序

数组的拷贝使用Arrays.copyOf();这里就不详细介绍了可以多看看API文档

数组的排序使用的是Arrays类中的sort方法:

public class FirstText {public static void main(String[] args) {int[] a = new int[]{2, 1, 3};int[] b = Arrays.copyOf(a, 3); //数组的复制Arrays.sort(b);//排序System.out.println(Arrays.toString(b));
//输出结果[1,2,3]}
}

这个方法使用的是 优化了的快速排序 (QuickSort)算法

6.5二维数组

Arrays.deepToString(a);

7.结尾

  • 对于面向对象之前的内容就总结这么多,如果有不足之处,希望大家多多包涵,多多支持。如果有不懂的地方可以直接私信问我,欢迎来访!
  • 我将会继续更新关于Java的学习知识,感兴趣的小伙伴可以关注一下。
  • 文章写得比较走心,用了很长时间,绝对不是copy过来的!
  • 尊重每一位学习知识的人,同时也尊重每一位分享知识的人。

http://chatgpt.dhexx.cn/article/bNZ9ty7c.shtml

相关文章

Java程序设计(一)

终于开Java课了&#xff0c;完全没动力学习O__O "… 环境 JDK-11.0.2 eclipse-jee-2018-12-R-win32-x86_64 都是官网找最新版本下的。 Java语言基础 实验编号&#xff1a; 实验一 实验主题&#xff1a; Java语言基础 实验目的&#xff1a; (1)熟悉使用Eclipse、Netbe…

Java语言程序设计(基础篇)

网站 更多书籍点击进入>> CiCi岛 下载 电子版仅供预览及学习交流使用&#xff0c;下载后请24小时内删除&#xff0c;支持正版&#xff0c;喜欢的请购买正版书籍 电子书下载(皮皮云盘-点击“普通下载”)购买正版 封页 编辑推荐 Java语言的经典教材&#xff0c;多年来…

Java的基本程序设计

前言: 阅读完本章,你将学习到Java的基本类型、变量与常量、运算符及其进阶部分。 注:关于进阶部分将会标注 " * " , 初学者可以跳过。 目录 一, 变量与常量 1.1 声明变量 1.2 变量的命名规则 1.3 变量初始化 1.4 常量 二, Java基本数据类型 2.1 基本数据类型&…

Java程序设计基础

Java程序设计基础 Java最早是由SUN公司&#xff08;2009年4月被Oracle收购&#xff09;的James Gosling&#xff08;詹姆斯高斯林Java之父&#xff09;在上个世纪90年代初开发的一种编程语言&#xff0c;最初被命名为Oak&#xff0c;在1995年以Java的名称正式发布&#xff0c;1…

java语言程序设计-基础篇

第1章&#xff0c;计算机、程序和Java概述 包括【每个java初学者都应该搞懂的问题】 http://blog.csdn.net/haobo920/article/details/5784990 1&#xff0c;java背景 特点&#xff1a; 一次编译&#xff0c;到处运行&#xff08;Write Once, Run Anywhere.&#xff09;。 原理…

Java程序设计案例教程

目录 1. java初步 1.1 Java基础知识 1.2 创建第一个Java项目 1.3 Java API 帮助文档 1.4 小结 1. java初步 1.1 Java基础知识 1.1.1 Java编程开发简介 1.Java版本 Java SE 应用于桌面环境 桌面应用开发 …

Java程序设计入门教程--包

情形 在Java中&#xff0c;包(package)是一种松散的类的集合&#xff0c;它可以将各种类文件组织在一起&#xff0c;就像磁盘的目录&#xff08;文件夹&#xff09;一样。包的管理机制提供了类的多层次命名空间避免了命名冲突问题&#xff0c;解决了类文件的组织问题&#xff0…

JAVA语言程序设计

计算机、程序和JAVA概述 一、计算机概述和编程语言 一&#xff09;、Java语言的发展 60年代->提出对象与实例的概念&#xff0c;并引入了类。 1960年代由Simula 67语言引入面向对象的基本概念。Simula这一语言是Ole-Johan Dahl 和Kristen Nygaard在挪威奥斯陆计算机中心为…

JAVA语言程序设计基础入门技术教程

JAVA语言程序设计基础 第一章&#xff1a;JAVA入门基础–开山篇 视频&#xff1a;https://edu.csdn.net/course/detail/8034 前言&#xff1a;什么是java 是咖啡飘香的清晨是斯坦福校园意浓情深是James的思想睿智是剁手党双十一挥舞的利刃是大数据服务的平台是春运时节那期…

Java程序设计入门教程--Java语言概述

目录 1.1 Java语言诞生与发展 1.2 Java语言的特点 1.3 运行机制与虚拟机 1.1 Java语言诞生与发展 Java语言的诞生最早可以追溯至1991年&#xff0c;那时称为OAK语言&#xff0c;是SUN公司为一些消费性电子产品而设计的一个通用环境&#xff0c;其最初目的只是为了开发一种独…

Java程序设计--Java入门(一)

Java入门 1、Java概述1.1 Java语言发展史1.2 Java语言跨平台原理1.3 JRE和JDK1.4 JDK的下载和安装 2. 入门程序HelloWorld2.1 常用DOS命令2.2 Path环境变量的配置2.3 HelloWorld案例2.4 HelloWorld案例常见问题 3、IDEA安装使用3.1 IDEA概述、安装3.2 IDEA编写程序3.3 IDEA设置…

Java程序设计教程(第3版)雍俊海 全书例程-2

p301随手画面板例程 import java.awt.Dimension; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.awt.event.MouseMotionAdapter; import java.awt.Graphics; import java.awt.Point; import java.util.Vector; import javax.swing.JPan…

Java程序设计教程及实验指导(个人笔记)

文章目录 第一章Java语言概述第二章Java编程基础第三章Java类与对象第四章 继承与多态性第五章 异常处理第六章 Java常用类第七章 泛型与集合第八章 多线程第九章 Java I/O流第十章 图形用户界面第十一章 网络编程第十二章 数据库编程JDBC 第一章Java语言概述 一、实验操作 1、…

C++ostream的使用

在 C中&#xff0c;ostream表示输出流&#xff0c;英文”output stream“的简称。在 C中常见的输出流对象就是标准输出流cout&#xff0c;很少自定义ostream的对象&#xff0c;更多的是直接使用cout。那么 ostream 有什么用呢&#xff0c;来看一个场景&#xff1a; class CPoi…

istream_iterator和ostream_iterator学习体会

istream_iterator 在<iterator>头文件的定义中 定义istream_iterator变量的方法为 istream_iterator<T> in(strm); (其中T指明此istream_iterator的输入类型 , strm为istream_iterator指向的流) 提供了输入操作符&#xff08;>>&#xff09;和 输出操作…

Stream

Java8 的 Stream 流&#xff0c;加上 Lambda 表达式&#xff0c;可以让代码变短变美&#xff0c;还是变短变丑&#xff1f; 距离Java 8发布已经过去了7、8年的时间&#xff0c;Java 19也发布了。Java 8中关于函数式编程和新增的Stream流API至今饱受“争议”。 如果你不曾使用…

istream_iterator 和 ostream_iterator

C primer代码学习 通过istream_iterator 绑定标准输入 cin 通过ostream_iterator 绑定标准输出 cout #include <iterator> using std::istream_iterator; using std::ostream_iterator;#include<vector> using std::vector;#include<iostream> using std::c…

C++重载istream和ostream

对于一般的运算符重载&#xff0c;可以重载为类的成员函数&#xff0c;这是因为操作符的第一个元素一定是本类的对象&#xff08;this&#xff09; 例如 #include<iostream> using namespace std;class book { public:book (int n):bookNo(n) {}int getBookNo () {retu…

【C++初阶】ostream、operater<<、operator<<(ostream _cout, const Date d)、bool引导的结构体内嵌比较函数解析

对C重载、判断部分的知识进行梳理 目录 一、bool operator>(const Date& d) const【bool引导的结构体内嵌比较函数】 1.代码整体含义 2.代码两个const的含义 二、friend ostream& operator<<(ostream& _cout, const Date& d) 1. 相关基础概念 …

C++ iostream、ostream、istream等标准库都是什么?看完这篇就知道了

目录 iostream 库组成基本类模板类模板实例标准对象类型操纵符 源码 ostream 库istream 库fstream 库ios 库 我们在写C代码的时候&#xff0c;总会用到 iostream 库&#xff0c;这是C的标准库&#xff0c;几乎每个程序都会用到它&#xff08;有一些人则会用 cstdio &#xff…