一:java语言介绍
(1). 1991年出现,1995年5月正式发布
出生地:SUN 创始人:James Gosling 2009年4月被Oracle收购
目前最新的版本2018年3月v10.0
(2) Java特点:免费开源,简单易学,面向对象,安全可靠,与平台无关可以跨平台。
(3). Java的体系结构:
JavaSE:java基础,用于桌面应用开发
JavaEE:企业级开发,javaweb
JavaME:移动端,被android替代了
(4). Java源程序 .java结尾
一个Java源文件中可以定义多个类,但是至多只有1个被public修饰的类,被public修饰的类的名称必须和文件名一致。
定义了几个类就会生成几个对应的class文件(字节码文件)
(5). Java为什么可以跨平台?
跨平台性:使用java语言编程的程序,一次编译后,
可以在多个平台(windows、linux)上运行
原因:因为Java有虚拟机(JVM),不同平台会提供不同jdk,jdk是包括jre和虚拟机,编译后生成的字节码文件可以在虚拟机上运行。
(6). JDK(java开发工具集) Java Development Kits
(7). JRE(java运行时环境)Java Runtime Environment
(8). JDK安装后需要配置环境变量,在jdk1.6以后只需要配置path
C:\Program Files\Java\jdk1.7.0_05\bin
(9). javac.exe 编译器 java.exe 解释器
(10). java源代码必须先通过编译器进行编译,生成字节码文件,再使用解释器运行字节码文件
二. 标识符
作用:给类、接口、变量、方法命名
要求:stuName
① 只能由字母、数字、下划线、美元符号组成
② 不能以数字开头
③ 不能和关键字重名,以及jdk中存在的类和接口重名
④ 严格区分大小写
⑤ 见名知义
⑥ 可以使用中文,但是不建议
⑦ 类名首字母大写,属性名和方法名首字母需要小写,如果由多个单词组成使用驼峰命名法
三. Java关键字
[1]8种基本数据类型:
(1) byte
整型 占用1字节8位
(2)short
短整型 占用2字节16位
(3)int
整型 4字节32位,整数默认是int
(4) long
长整型 8字节64位
(5) float
单精度浮点类型 占4个字节,32位,声明float变量时,要在后面加f或者F
(6) double
双精度浮点类型 占8个字节,64位,浮点数默认是double
(7) char
字符型,占两个字节,16位,用单引号,而双引号表示字符串,java使用unicode编码
(8) boolean
布尔类型 只有true或false
[2]2种包相关的:
package import
[3]3种访问控制修饰符:
private protected public
[4]10种流程控制:
if else switch case default break continue for while do
[5]9种修饰符:
class interface static final abstract extends implements instanceof enum
[6]2种和方法相关的:
void return
[7]3种和对象相关:
new this super
[8]1种引用数据类型的默认值:
null
[9]5种异常相关:
try catch finally throw throws
[10]2种保留字:
const goto
[11]5种其他:
native assert synchronized transient volatile
四:Java变量和常量的声明
(1)变量的声明,所有变量在声明时需要为为它赋值
Java是一个强类型的编程语言,当声明一个变量时必须指定它的数据类型
语法: 数据类型 变量名 [=初始值] ;
例如:定义一个整型变量a,值为100
int a=100;
(2)常量的声明
在程序中一直不会改变的量叫常量
语法:final 数据类型 常量名称=[值]
五:8种基本数据类型
4个整型: byte(1字节8位) short(2字节16位) int(4字节32位) long(8字节64位)
2个浮点型: float(4字节32位) double(8字节 64位)
1个字符型: char (2字节16位)
1个布尔类型: boolean(1位)
六: 基本数据类型的注意事项:
① 整数的默认类型为int,浮点型默认类型为double
② 当定义float类型变量时,需要在值后面添加小写f或者F
③ 当定义long类型变量时,如果值超过int类型的范围则需要在值后面添加L
④ boolean类型的变量值,只能是true和false
⑤ 字符型,可以转义 char c=’n’; char c2=’\n’;代表换行
⑥ byte a=(byte)128; 则输出a的值为-128
七:类型转换
分为两种:自动类型转换(向上转型),小的转大的
强制类型转换(向下转型),大的转小的,有时候会产生精度丢失
注意:byte和char必须强制转换才可以
八:局部变量和全局变量和变量的有效范围
变量的有效范围是指代码能够访问的变量的区域,等到程序执行到一个点,该变量就会被释放,也就是到了他的生命周期
在类中定义的变量叫做成员变量,成员变量在整个类中都有效。分为两种静态变量和实例变量。用static修饰的变量,其有效范围可以跨类,甚至可以达到整个应用程序。可直接通过类名.静态变量的方式在其他类中使用。
在类的方法体中定义的变量称为局部变量。局部变量只在代码块中有效,局部变量的生命周期取决于方法,当方法被调用时,JAVA虚拟机为方法中的局部变量分配内存空间,当该方法结束后,则会释放局部变量占用的空间,局部变量也会销毁。
九:运算符
(1)赋值运算符= 如果一个等式中有了两个等号,会从最右边的开始计算
(2)算术运算符 +(加法) ,-(减法), *(乘法) , /(除法), %(求余数)
(3)自加自减运算符 b=a++ 先赋值给b,再自加 ,b=++a 先自加,再赋值给b
(4)比较运算符 > ,<,==,>=,<=,!=
(5)逻辑运算符
(&和&&) 后者是短路与,如果左边表达式为假时,右边的表达式将不会执行。
(|和||) 后者是短路或,如果左边的表达式为真时,右边将不会执行
十,位运算
(1)按位与 &先转换位二进制,然后每个位上的数都是1则结果为1,否则都为0
(2)按位或 |先转换位二进制,然后每个位上的数都是0则结果为0,否则都为1
(3)按位取反 ~ 先转换位二进制,然后每个位置上的1变为0,0变为1,负数以补码运算
(4)按位异或 ^先转换位二进制,然后每个位上的数相同为0,相异为1(按补码运算)
(5)移位操作 << >>先转换位二进制,左移就是将操作数向左移动,右边空的部分补上0,右移就是(按补码运算)如果(最高位)是正数(0),右移空的为填0,若是负数(1)则填入1
十一:三元运算
条件式? 值1(true):值2(fales)
十二:运算符优先级
增量和减量运算
算术运算
逻辑运算
赋值运算
十三:常见的Ascll
A(65),Z(90),a(97),z(122)
十四:主方法的理解
public static void main(String[] args)
public:一种访问权限,表示公开
static :此方法名由类名称直接调用
void:不带返回值,因为是一切方法的开始
main:系统规定的一个方法名称,执行类时默认找到这个方法
String[] args:表示的是一些运行时的参数,通过字符串接收
十四:本章对应的思维导图
- Java学习总结(二)----Java语言基础
1. Java语言基础 2.1 关键字 定义:被java语言赋予特殊含义的单词 特点:关键字中的字母都为小写 用于定义数据类型的关键字 class,interface,byte,short,i ...
- java语言基础02
一.Java语言基础(常量的概述和使用)(掌握) 1:什么是常量 就是在程序的执行过程中其值不发生改变的量. 2:Java中常量的分类 (1):字面值常量 (2):自定义常量(面向对象部分讲解) 3: ...
- Java之--Java语言基础组成—数组
Java语言基础组成-数组 Java语言由8个模块构成,分别为:关键字.标识符(包名.类名.接口名.常量名.变量名等).注释.常量和变量.运算符.语句.函数.数组. 本片主要介绍Java中的数组,数组 ...
- Java之--Java语言基础组成—函数
Java语言基础组成-函数 Java语言由8个模块构成,分别为:关键字.标识符(包名.类名.接口名.常量名.变量名等).注释.常量和变量.运算符.语句.函数.数组. 本片主要介绍Java中的函数,函数 ...
- Java之--Java语言基础组成(关键字、标识符、注释、常量和变量、运算符)
Java语言基础组成-关键字.标识符.注释.常量和变量.运算符 Java语言由8个模块构成,分别为:1.关键字:2.标识符(包名.类名.接口名.常量名.变量名等):3.注释:4.常量和变量:5.运算符 ...
- Java语言基础(二) Java关键字
Java语言基础(二) Java关键字 Java关键字比较多,我就不列举出来了,只记录一些常用的小知识点: ①Java的关键字只有小写. ②then.sizeof都不是Java的关键字,熟悉C++的程 ...
- Java语言基础(九)
Java语言基础(九) 一.自增运算(++) 自减运算(--) i++ 就是将i+1再赋给 i i-- 是将i-1再赋给 i 对变量i,j来说,i++ 或++i 这里没什么区别,都是将i的值加1后,再 ...
- Java语言基础(八)
Java语言基础(八) 一.数学运算 + - * / % (1)凡是byte short char类型都按int类型的计算 看看上面的代码,为什么出错! 我已经将100转成byte类型,( ...
- Java语言基础(七)
Java语言基础(七) 今天在公司多呆了会,回来晚了 一.自动类型转换 在Java中,数据是可以转换的 例如可以将byte类型的赋给int类型的 这里希望你了解内存的变化,例如 在这里,我想你应该知 ...
- Java语言基础(六)
Java语言基础(六) 前一章提到的, BigDecimal, DecimalFormat等具体用法,这里就不在说了,网上有许多 一.下面让我们看一个例子(自由落体运动位移) 说明: (1).公式是 ...
随机推荐
- kubernetes笔记
如果pod包含多个container, 这些container不会跨机器分布 每个container只运行一个进程,而不是在一个container运行多个进程,这样更容易处理进程异常重启,进程日志等问 ...
- 动态代理中newProxyInstance中三个参数
JDK Proxy(代理对象): Proxy.newProxyInstance 方法的三个参数创建代理对象 增强 person对象 使用代理对象代替person 去执行 doCourt方法参数1 类 ...
- Databend 设计概述 | 白皮书
Databend 是一个开源的.完全面向云架构的新式数仓,它提供快速的弹性扩展能力,并结合云的弹性.简单性和低成本,使 Data Cloud 构建变得更加容易. Databend 把数据存储在像 AW ...
- 多线程合集(一)---信号量,锁,以及并发编程,自定义任务调度和awaiter
引言 在后端开发中,多线程技术总是后端开发中常用到的技术,那什么是多线程呢,在操作系统中,程序运行的最小单位是进程,那线程则是进程里面的最小单位,关系是一对多的关系,而线程的调度,是由操作系统的时间片 ...
- [atARC083F]Collecting Balls
考虑一个构造,对于坐标$(x,y)$,连一条$x$到$y$的边(注意:横坐标和纵坐标即使权值相同也是不同的点),之后每一个连通块独立,考虑一个连通块内部: 每一个点意味着一次删除操作,每一个边意味着一 ...
- 同时在多个 Git 分支上工作,老板要榨干我
背景 上一篇文章 保持清洁的Git提交记录,三招就够了 ,大家看过后有私下留言说这是非常好用的功能,我突然想到工作中用到的另外一个 Git 功能那也是相当好用,必须全盘托出 作为程序员的我们应该都有一 ...
- Kotlin小测试
fun main(args: Array<String>) { var a=1 a=2 println(a)//2 println(a::class)//int (Kotlin refle ...
- FESTUNG — 3. 采用 HDG 方法求解对流问题
FESTUNG - 3. 采用 HDG 方法求解对流问题[1] 1. 控制方程 线性对流问题控制方程为 \[\begin{array}{ll} \partial_t c + \nabla \cdot ...
- 感谢 git
今天对程序大修了一下,顺便把所有算例测试了一遍,突然发现二维浅水方程有些算例出现了明显的错误. 这次突然出现的错误让我有点措手不及,因为一直没有修改过浅水方程求解器,所以这些算例很久没有测试过了.硬着 ...
- exit(0) exit(1) return() 3个的区别
exit(0):正常运行程序并退出程序: exit(1):非正常运行导致退出程序: return():返回函数,若在主函数中,则会退出函数并返回一值. 详细说: 1. return返回函数值,是关键字 ...