java基础案例教程前4章知识点_java学习记录4 Java基础知识点

java学习记录4 Java基础知识点

1. 注释

单行注释

使用“//”开头,后面是注释的内容

一般在要注释的语句的上面加注释

多行注释

以“/*”开头,以“*/”结尾

可以做行内注释

不可嵌套使用

文档注释

以“/**”开头,以“*/”结尾

用来给类和方法做注释,用以说明类的功能和作者等信息

包含一些说明行文字及一些JavaDoc标签,可以在写项目是生成项目的API

注意

注释不会出现在字节码文件中,即Java编译器编译时会跳过注释语句

2. 标识符规则-驼峰规则

定义

是用来给变量、类、方法以及包进行命名的

规则

必须以字母、下划线_、美元符$开头

其它部分可以是字母、下划线,美元符和数字的任意组合

大小敏感,长度无限制

不可以是Java的关键字

规范

给类起名,首字母要大写,如Man,GoodMan.

给方法和变量起名,第一个单词小写,从第二个单词开始首字母大写,遵从“驼峰原则”,如:eat(),eatFood().

Java采用Unicode标准国际字符集,因此变量名可以是英文的,也可以是中文的,但尽量不要用中文。

3. 变量

本质

本质上是一个“可操作的存储空间”,空间的位置是确定的,但是里面放置什么值是不确定的。我们可通过变量名来访问“对应的存储空间”,从而操纵这个“存储空间”存储的值。

Java是强类型语言,每个变量都必须声明其数据类型。

是最基本的存储单元,其要素包括变量名、变量类型和作用域。变量在使用前必须对其声明,只有变量声明以后,才能为其分配相应长度的存储空间。

包括基本类型和引用类型两种类型的变量。

不提倡“一行声明多个变量”

局部变量必须声明并且初始化之后才能使用

分类

局部变量(local variable)

含义:方法或语句块内部定义的变量。

周期:从声明的位置开始到方法和语句块执行完毕为止。

局部变量使用之前必须初始化。

成员变量(member variable)

也叫实例变量。

定义在方法的外部、类的内部的变量,没有被static修饰。

从属于对象。

生命周期伴随对象始终。

会自行初始化成该类型的默认出始值。

出始值:int - 0,double - 0.0,char - '\u0000',boolean - false

静态变量(static variable)

定义在类内部,使用static定义。

从属于类。

生命周期伴随类始终,从类加载到类卸载。生命周期最长。

4. 常量(Constant)

定义

通常指的是一个固定的值。

主要利用关键字final类定义一个常量。

常量一旦被初始化之后不能再更改其值。

声明格式:

final type varName = value;

1、2等是字面常量,被final修饰的是符号常量

规范

所有变量、方法、类名:见名知意。

常量:大写字母和下划线:MAX_VALUE。

类名:首字母大写和驼峰原则

方法名:首字母小写和驼峰原则

5. 基本数据类型(primitive data type)

数值型

byte:整数类型,占1个字节

short:整数类型,2个字节

int:整数类型,4个字节

long:整数类型,8个字节

float:浮点类型,4个字节

double:浮点类型,8个字节

字符型

char:2个字节

布尔型

boolean:1位

注意

引用数据类型占4个字节

包括类(class)、接口(interface)、数组

1个字节=8位

6. 整型变量和常量

整型数据类型

byte:1字节 ,8次方,-2的7次方到2的7次方-1,-128到127,其中有0

short:2字节,16次方,-32768到32767

int:4字节,32次方,范围-2三十一次方到2的三十一次方-1,约21亿

long:8字节,2的64次方

注:其中一位表示正负。

各种进制的表示方法

十进制:如:99,-10等

八进制:以0开头

十六进制:以0x或0X开头

二进制:以0b或0B开头

注:整型常量默认是int类型

注:后面加L表示这是一个long类型的常量,L大小写都行。

7. 浮点型变量和BigDecimal的使用

数据类型

float

占4字节,-3.403E38~3.403E38

但精度类型,尾数可精确7位有效数字

float类型的数值有一个后缀F或f

double

占8字节,-1.798E308~1.798E308

双精度类型,精度约为float类型的两倍,浮点型常量默认double类型

表示形式

十进制数形式:3.14 ,314.0,0.314

科学计数法形式:314e2或314E2表示314乘以10的二次方,等于31400.0, 314E-2表示314乘以10的-2次方,等于3.14

float和int占得字节一样,但表示的范围更广,因为float有效数

浮点数是不精确的。不要用于比较

比较的话用BigInteger和BigDecimal,在java.math包下,这两个类可以处理任意长度的数值。BigInteger可以实现任意精度的整数运算。BigDecimal可以实现任意精度的浮点运算。可用于金融领域。

代码示例:

double d = 0.1;

double e = 1.0/10;

System.out.println(d == e);//类型一样true

float f = 0.1f;

double g = 1.0/10;

System.out.println(f == g);//类型不一样false

8. 字符型类型-转义字符

字符型变量/常量

char,占两个字节

用单引号表示,可允许有65536的字符,包含世界上所有的符号

通常用从'\u0000'到‘\uFFFF’之间的十六进制值来表示(u代表Unicode)

代码示例:

char a = 'T';

char b = '尚';

char c = '\u0061';

System.out.println(a);

System.out.println(b);

System.out.println(c);//结果为a

System.out.println('a'+'b');//结果为195

System.out.println(" "+'a'+'b');//结果为ab

9. 布尔类型

内存只占1位

只有两个值,true或false

不可以使用0或非0的整数代替true和false,这点与c不同

Boolean类型用来判断逻辑条件,一般用于程序流程控制

10. 运算符(operator)

算数运算符

二元运算符

规则

整数运算

如果两个操作数有一个为Long,则结果为Long。

没有Long时,结果为int。即使操作数全为short,byte,结果也是int。

浮点运算

如果两个操作数有一个为double,则结果为double。

只有两个操作数都是float,则结果为float。

运算中有一个浮点数,结果为浮点数。

取模运算

其操作数可以为浮点数,一般是整数,结果是余数

余数符号和左边操作数相同,7%3=1,-7%2=-1,7%-3=1。

自增自减

//自增,自减

int c = 4;

int d = c++;

System.out.println("c="+c+"\nd="+d);//c=5,d=4,先把c的值赋给d,c再加1

c = 4;

d = ++c;

System.out.println("c="+c+"\nd="+d);//c=5,d=5,c先加1,再把c的值赋给d

赋值运算符

实例

int e = 3;

int f = 4;

f *= e + 3;//等于f*(e+3)=24,始终先计算符号后面

System.out.println(f);

关系运算符

结果是布尔值:true/false

逻辑运算符

逻辑与 &,两边都要查看

逻辑或 |,两边都要查看

短路与 && ,如果第一个是false,就不看第二个条件,就是false,否则会查看第二条件

短路或 ||,如果第一个是true,就不看第二个条件,就是true,否则会查看第二条件

异或 ^,两边相同false,两边不同true

位运算符

移位算法,左移<>,相当于除以2

字符串连接符

“+”是连接符

当“+”两边,有一边是字符串,得到的结果就是字符串

示例代码

String a = "3";

int b = 4;

int c = 5;

char d = 'a';

System.out.println(a+b+c);  //345

System.out.println(b+c+a);  //93

System.out.println(d);      //a

System.out.println(d+4);    //101

条件运算符

三目运算符

11. 自动类型转换

指的是容量小数据类型的自动转换成容量大的数据类型

13. 基本数据类型溢出

注意计算结果可能会溢出

表达是中两个变量是int,结果是变量,如果溢出,就让其中一个做变量提升成long类型

14. 使用Scanner获取键盘输入

要导入包:import java.util.*;

Scanner scanner = new Scanner(System.in);

System.out.println("姓名:");

String name = scanner.nextLine();

System.out.println("爱好:");

String favor = scanner.nextLine();

System.out.println("年龄:");

int age = scanner.nextInt();

System.out.println(name);

System.out.println(favor);

System.out.println(age);

15. 流程控制语句

switch多选择结构

switch(month)

{

case 1:

System.out.println("一月");

break;

case 2:

System.out.println("二月");

break;

default:

System.out.println("其他月");

break;

}

switch(month)

{

case 1:

case 2:

System.out.println("第一节度");//条件1,2,都会打印“第一季度”

break;

default:

System.out.println("其他季度");

break;

}

注:

遇到break,就终止,没有break会接着判断。

while循环详解

循环结构分为当型和直到型

for 死循环

for(;;)

{}

break 和continue语句

break

用于强行退出循环,不执行循环中剩余的语句。

continue

用于退出本次循环,继续执行下次循环。

由内循环跳外循环用带标签的continue,

格式 标签名:语句;continue 标签名;

16. 方法

定义:方法就是一段用来完成特定功能的代码片段,类似于其他语言的函数。

形参:在方法声明时用于接收外界传入的数据。

实参:调用方法时实际传给方法的数据,传递的是数据副本

返回值:方法在执行完毕后返还给调用它的环境数据,如果没有,就是void类型

方法通过对象调用,一个类调用自己的方法时也要实例化对象

return:1.结束方法的运行。2.返回值

方法从属于对象和类

基本类型传递的是值的copy,引用类型传的是对象引用的copy值,但指向的是同一个对象。

方法的重载(overload)

定义:一个类中有多个方法的名称重复,但是完全不同的方法。

不同的含义是:形参类型、形参个数、形参顺序不同

只有返回值不同不构成方法的重载

只有形参的名称不同、不构成方法的重载

方法调用,方法加static修饰,就不用了new 对象,就可以调用方法,否则,必须要new对象才行。

17. 递归结构

基本思想:自己调自己。

递归结构有两部分:递归头和递归体。

定义递归头,:什么时候不调用自身方法。如果没有头,将陷入死循环,也就是递归的结束条件。

递归体:什么时候需要调用自身方法。

爬虫-递归

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/529382.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

打印狗的健康值Java_嵌入式狗的JAVA之路 HTML 补课

学了JAVA WEB应用&#xff0c;补充一下HTML的标签&#xff0c;常用的&#xff0c;不然页面都画不出来了~~test 标题&#xff0c;h1h2h3 3个字号test 段落link 链接 使用 Target 属性&#xff0c;你可以定义被链接的文档在何处显示。下面的这行会在新窗口打开文档&#xff1a;Vi…

mysql 表2符合表1_MYSQL-表1和表2中所有可能性的所有行

表用户id, name1, Jay Bob2, An Other表格页id, name, html1, Welcome, Welcome to this page2, Goodbye, Thanks for visiting表user_pages **存储页面的用户特定版本**user_id, page_id, html1, 1, User id 1 Welcome page我基本上需要一个查询,该查询将为我返回以下数据集-即…

java引擎组件_Java 脚本引擎入门

Java Script EngineJava 脚本引擎可以将脚本嵌入Java代码中&#xff0c;可以自定义和扩展Java应用程序&#xff0c;自JDK1.6被引入&#xff0c;基于Rhino引擎&#xff0c;JDK1.8后使用Nashorn引擎&#xff0c;支持ECMAScript 5&#xff0c;但后期还可能会换。脚本引擎包位于jav…

python 角度传感器模拟_python树莓派红外反射传感器

本文实例为大家分享了python树莓派红外反射传感器的程序&#xff0c;供大家参考&#xff0c;具体内容如下1、工具rpi3&#xff0c;微雪ARPI600&#xff0c;Infrared Reflective Sensor2、基本原理Infrared Reflective Sensor 输出数字和模拟信号模拟信号通过ARPI600上的AD转换芯…

JAVA awt eventqueue_线程“AWT-EventQueue-1”中的异常java.lang.NullPointerException

嗨&#xff0c;我收到错误Exception in thread "AWT-EventQueue-1" java.lang.NullPointerExceptionat P6.itemStateChanged(P6.java:215)at javax.swing.AbstractButton.fireItemStateChanged(AbstractButton.java:2023)at javax.swing.AbstractButton$Handler.item…

java构造方法赋值内存图_java 面向对象(九):类的结构:构造器(一)简介;属性赋值顺序;JavaBean的概念...

1.构造器(或构造方法)&#xff1a;Constructor构造器的作用&#xff1a;* 1.创建对象* 2.初始化对象的信息2.使用说明&#xff1a;* 1.如果没显式的定义类的构造器的话&#xff0c;则系统默认提供一个空参的构造器* 2.定义构造器的格式&#xff1a;权限修饰符 类名(形参列表){}…

java 集合modcount_源码|jdk源码之LinkedList与modCount字段

链表是对上一篇博文所说的顺序表的一种实现。与ArrayList思路截然不同&#xff0c;链表的实现思路是&#xff1a;不同元素实际上是存储在离散的内存空间中的。每一个元素都有一个指针指向下一个元素&#xff0c;这样整个离散的空间就被“串”成了一个有顺序的表。从链表的概念来…

idea 新建ssm java ee_IDEA搭建SSM项目实现增删改查

首先打开IDEA&#xff0c;File—>New—>Project创建项目选择左侧导航栏里的Maven&#xff0c;勾上勾&#xff0c;选择webapp按如下图进行填写创建完成后进入项目&#xff0c;右下角弹出的提示点击右边的Enable Auto-Import&#xff0c;自动配置连接数据库&#xff0c;我用…

php mail centos_centos怎么发送邮件

一、安装sendmail与mail1、安装sendmail&#xff1a;1) centos下可以安装命令&#xff1a;yum -y install sendmail2) 安装完后启动sendmail命令&#xff1a;service sendmail start2、安装mail安装命令&#xff1a;yum install -y mailx二、发送邮件1、通过文件内容发送发送命…

php文件的作用,php入口文件的作用-PHP问题

php入口文件的作用php入口文件能够完成主动加载性能。解析PHP入口文件的主动加载性能php的主动加载&#xff1a;正在php5之前&#xff0c;咱们要用某个类或类的办法&#xff0c;那必需include或许require&#xff0c;之后能力应用&#xff0c;每一次用一个类&#xff0c;都需求…

emacs php 配置文件,如何配置emacs进行正确的PHP开发?

我使用web模式(http://web-mode.org/)混合HTML / PHP文件和php模式为纯PHP文件.最新版本的php-mode还推荐使用混合HTML / PHP文件的Web模式&#xff1a;https://github.com/ejmr/php-mode#avoid-html-template-compatibility.不同于其他模式,如mmm模式,mumamo或多网络模式,尝试…

php 5.3.9 漏洞,PHP-5.3.9远程执行任意代码漏洞(CVE-2012-0830) 详解

这个新的修复方法初衷是好的, 但是却带来一个严重的问题(5.3.10中已经修复), 这个问题最初是由Stefan Esser发现的. 请看之前(5.3.9)最终的修复方案(php_register_variable_ex):代码如下while (1) {if (zend_symtable_find(symtable1, escaped_index, index_len 1, (void **) …

java中随机数边界问题,java 简单Dice问题(随机数的运用)

[java]代码库/*** Dice Write a program that simulates rolling two dice using the following* steps: 1. Prompt the user for the number of sides for two dice. 2. “Roll” the* dice three times by generating a random number between 1 (inclusive) and the* number…

php 正则替换 ubb,php实现过滤UBB代码的类

本文实例讲述了php实现过滤UBB代码的类。分享给大家供大家参考。具体如下&#xff1a;PHP代码如下&#xff1a;class Day{function ubb($Text) { /// UBB代码转换//$Texthtmlspecialchars($Text);//$Textereg_replace("\r\n","",$Text);$Textereg_rep…

java单词测试,java单词 - 在线打字测试(dazi.kukuw.com)

java单词贡献者&#xff1a;15533470608类别&#xff1a;英文 时间&#xff1a;2018-08-04 22:32:16 收藏数&#xff1a;20 评分&#xff1a;0返回上页举报此文章请选择举报理由&#xff1a;广告/谣言/欺诈政治敏感色情/违法信息垃圾文章其他收藏到我的文章改错字public static…

java vector list,Java基础之:List——ArrayList Vector

Java基础之&#xff1a;List——ArrayList & VectorArrayList简单介绍ArrayList实现了List接口&#xff0c;底层是一个数组&#xff0c;并实现了可变的功能。底层属性(transient Object[] elementData;)在序列化时&#xff0c;忽略该属性。ArrayList实现了List接口&#xf…

java建立线性表的链式结构,数据结构学习----线性表的链式表示(Java实现)

线性表接口LList&#xff1a;package com.clarck.datastructure.linked;/*** 线性表接口LList&#xff0c;描述线性表抽象数据类型&#xff0c;泛型参数T表示数据元素的数据类型** author clarck**/public interface LList {/*** 判断线性表是否空* return*/boolean isEmpty();…

php prepare 批量,PreparedStatement批处理

PreparedStatement批量更新关键代码 无 import java.sql.Connection;import java.sql.PreparedStatement; //...String sql "insert into employee (name, city, phone) values (?, ?, ?)";Connection connection new getConnection();PreparedStatement pPrepa…

钉钉 php 推送,微信模板推送,钉钉信息推送

上午的时候看到有朋友需要微信推送&#xff0c;正好我也需要&#xff0c;之前一直用 Server 酱的&#xff0c;但是最近用不了&#xff0c;想找一个替代品&#xff0c;一开始准备选择钉钉&#xff0c;除了打卡&#xff0c;我很少使用钉钉&#xff0c;邮件提醒是备用方案&#xf…

java repaint 重画图形,学习笔记:WINDOWS的图形重绘基础

OnPaint()与OnDraw()的区别&#xff1a;OnPaint是WM_PAINT的消息响应函数&#xff0c;在MFC的基类里OnPaint函数调用了OnDraw()函数。OnPaint函数另外还调用了OnPrepareDC()函数。如果在窗口子类覆盖了OnPaint函数&#xff0c;当MFC调用我们重写的OnPaint函数时&#xff0c;就调…