Java 基础篇之编程基础
基本数据类型
java 是强类型语言,在 java 中存储的数据都是有类型的,而且必须在编译时就确定其类型。
基本数据类型变量存储的是数据本身,而引用类型变量存的是数据的空间地址。

基本类型转换
自动类型转换
把一个表数范围小的数值或变量直接赋给另一个表数范围大的变量时,系统将会进行自动类型转换,否则需要强制转换。
强制类型转换
强制类型转换可能存在溢出导致数据精度丢失的情况。
字符串
Java 没有内置的字符串类型,而是提供了一个标准类库 String。
特征:不可变字符串
优点:编译器可以让字符串共享(只有字符串常量是共享的,而 + 或 substring 等操作产生的结果并不是共享的)
运算符
自增自减
int a = 5;
int b = ++a; // a 先自增,再赋值给 b
System.out.println(a); // 6
System.out.println(b); // 6
int a = 5;
int b = a++; // a 先赋值给 b,再自增
System.out.println(a); // 6
System.out.println(b); // 5
条件判断
switch (表达式) {
case value1:
statement1;
break;
case value2:
statement2;
break;
case valuen:
statementn;
break;
default:
默认执行的代码;
}
当 switch 后表达式的值和 case 语句后的值相同时,从该位置向下执行,直到遇到 break 语句或者 switch 语句块结束;如果没有匹配的 case 语句则执行 default 块的代码。
case 后面的值可以是常量数值,也可以是一个常量表达式,但不能是变量或带有变量的表达式
可以把功能相同的 case 语句合并起来
default 块可以出现在任意位置,也可以省略
循环
While
while (condition) {
statement;
}
do-While
do {
statement;
} while (condition);
for
for (循环变量初始化; 循环条件; 循环变量变化) {
statement;
}
循环跳转
break
continue
数组
数组是用来存储固定大小的同类型元素。一旦数组初始化完成,数组在内存中所占的空间将被固定下来,因此数组的长度将不可以改变,即使某个数组的元素被清空,但是它所占的空间依然保留。
数组本身也是一种引用类型,既可以存储基本数据类型,也可以存储引用类型,只要存储的数组元素具有相同的类型即可。
动态初始化
执行动态初始化时,系统会根据声明的数组类型自动为数组元素分配初始值。如果是引用类型,则数组元素的初始值为 null。
int[] scores;
scores = new int[5]; // 声明一个长度为5的整型数组
// 上面两步可以合为一步
int[] scores = new int[5];
静态初始化
显示指定每个元素的初始值
int[] scores;
scores = new int[] {1,2,3,4};
// 上面两步可以合为一步
int[] scores = {1,2,3,4};// 方式二
遍历数组
for 循环遍历数组
foreach 遍历数组:foreach 不是 java 中的关键字,是 for 语句的特殊简化版。在遍历数组、集合时更方便
int[] scores = {1,2,3,4};
for (int score : scores) {
System.out.println(score);
}
数组的本质
将数组看成两个部分,一个部分是数组引用,也就是在代码中定义的数组引用变量;另一部分是实际的数组对象,这部分是在堆内存中运行的,通常无法直接访问它,只能通过引用变量来访问。
二维数组
二维数组本质上还是一维数组,只是其数组元素也是引用,数组元素里保存的引用指向一维数组。
String [][] str1 = {new String[3], new String[]{"hello"}};
上面代码的示意图:

Java 基础篇之编程基础的更多相关文章
- [Java入门笔记] 面向对象编程基础(二):方法详解
什么是方法? 简介 在上一篇的blog中,我们知道了方法是类中的一个组成部分,是类或对象的行为特征的抽象. 无论是从语法和功能上来看,方法都有点类似与函数.但是,方法与传统的函数还是有着不同之处: 在 ...
- iOS开发网络篇—网络编程基础
iOS开发网络篇—网络编程基础 一.为什么要学习网络编程 1.简单说明 在移动互联网时代,移动应用的特征有: (1)几乎所有应用都需要用到网络,比如QQ.微博.网易新闻.优酷.百度地图 (2)只有通过 ...
- iOS开发网络篇—网络编程基础(一)
一.为什么要学习网络编程 1.简单说明 在移动互联网时代,移动应用的特征有: (1)几乎所有应用都需要用到网络,比如QQ.微博.网易新闻.优酷.百度地图 (2)只有通过网络跟外界进行数据交互.数据更新 ...
- 【matlab 基础篇 02】基础知识一键扫盲,看完即可无障碍编程(超详细+图文并茂)
博主快速入门matlab,系统地整理一遍,如何你和我一样是一个新手,那么此文很适合你: 本人能力有限,文中难免有错误和纰漏之处,请大佬们不吝赐教 创作不易,如果本文帮到了您: 请帮忙点个赞
- Go语言基础之19--web编程基础
一.web编程基础 1.1 web工作方式 1.2 HTTP协议详解 a.http 请求包体 GET /domains/example/ HTTP/1.1 //请求行: 请求方法 请求URI HTTP ...
- 与你一起学习MS Project——基础篇:Project基础应用
为了更清晰容易地熟悉掌握Project的基础应用,我们在基础篇中一起来学习掌握在Project中如何做进度计划.资源计划.成本计划以及跟踪项目的执行情况并生成所需的项目报表. 一.进度计划 这里,首先 ...
- 3分钟看完Java 8——史上最强Java 8新特性总结之第一篇 函数式编程基础
目录 · 行为参数化 · Lambda表达式 · 概况 · 函数式接口 · 类型推断 · 使用外层变量 · 方法引用 · 复合Lambda表达式 行为参数化 1. 理解函数式编程要先理解行为参数化. ...
- java基础篇---网络编程(TCP程序设计)
TCP程序设计 在Java中使用Socket(即套接字)完成TCP程序的开发,使用此类可以方便的建立可靠地,双向的,持续的,点对点的通讯连接. 在Socket的程序开发中,服务器端使用serverSo ...
- java基础篇---网络编程(IP与URL)
一:IP与InetAddress 在Java中支持网络通讯程序的开发,主要提供了两种通讯协议:TCP协议,UDP协议 可靠地连接传输,使用三方握手的方式完成通讯 不可靠的连接传输,传输的时候接受方不一 ...
随机推荐
- Linux 防火墙开放、查询、关闭端口
1. 开放指定端口 firewall-cmd --zone=public --add-port=5121/tcp --permanent # --permanent 永久生效,如果不加此条,重启后该命 ...
- 学测试,看视频?NONONO,除非这种情况
001 前言 : 很久没周末写文章了,一个是要睡懒觉.另外一个是,周末写了大家也没有心思看(加班1周了,好不容易周末,你又让我学习 ?先睡个懒觉再说,去TM的学习). 然而,今天早早的5点就起床了,处 ...
- 前端开发-CSS语法标准
一.命名规则说明: 1.命名规则说明: 所有的命名最好都小写 属性的值一定要用双引号("")括起来,且一定要有值如class="nav",id="na ...
- 使用SpringSecurity保护程序安全
首先,引入依赖: <dependency> <groupId>org.springframework.boot</groupId> <artifactId&g ...
- Java中指令重排
/** * 指令重排:代码执行顺序与预期不一致 (发生在前后行代码无联系时) * 目的:提高性能 * */ public class HappenBefore { private static int ...
- Spring框架介绍及使用(转载)
原文链接 Spring框架—控制反转(IOC) 1 Spring框架概述1.1 什么是SpringSpring是一个开源框架,Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod ...
- 模板汇总——ST(暂)
int Log[N]; struct ST { ], a[N]; void init(int n) { ]=-); i < N; i++) Log[i] = Log[i - ] + ((i &a ...
- atcoder D - 11(组合数学)
题目链接:http://arc077.contest.atcoder.jp/tasks/arc077_b 题解:有n+1个数只有一个数字是有重复出现的,要求一共有多少不同的组合显然和这两个数的位置有关 ...
- 《Fluent Python》---一个关于memoryview例子的理解过程
近日,在阅读<Fluent Python>的第2.9.2节时,有一个关于内存视图的例子,当时看的一知半解,后来查了一些资料,现在总结一下,以备后续查询: 示例复述 添加了一些额外的代码,便 ...
- 【Offer】[65] 【不用加减乘除做加法】
题目描述 思路分析 测试用例 Java代码 代码链接 题目描述 写一个函数,求两个整数之和,要求在函数体内不得使用+.-.*./四则运算符号. 牛客网刷题地址 思路分析 对数字做运算,除了四则运算外, ...