day2Java程序基础
Java程序基础
Java程序基本结构
一个程序的基本单位是class,class是关键字
类名要求:
类名必须以英文字母开头,后接字母,数字和下划线的组合
习惯以大写字母开头
public除了修饰类还可以修饰方法
Java入口程序规定的方法必须是静态方法,方法名必须为main,括号内的参数必须为String数组。
方法名命名规则:
首字母小写
每一行语句必须以分号结束。
注释:
单行注释://
多行注释:/**/
多行注释:以/**开头,以**/结束,每行以星号开头
/**
*
*
*/
变量
基本类型变量
变量先定义后使用。
变量默认值是0
变量不可重复定义,可重复赋值,可变量之间赋值。
基本数据类型
整数类型:
byte(一个字节,-128~127),
short(两个字节,-32768~32767),
int(四个字节,-2147483648~2147483647),
long(八个字节,-9223372036854775808~922337203685477580)
浮点数类型:
float(四个字节),需要加上f后缀
double(八个字节)
字符类型:char(两个字节)
布尔类型:boolean(存储需要1bit,通常表示成四字节整数) 只有true和false两个值。
引用类型
string字符串:
常量
定义变量时加上final修饰符,变量就变成了常量。
作用:用有意义的变量名避免魔术数字。
常量名通常全部大写。
var关键字
作用:省略变量类型
var sb = new StringBuilder();
编译器会根据赋值语句自动推断出变量
sb的类型是StringBuilder。对编译器来说,语句:var sb = new StringBuilder();
实际上会自动变成:
StringBuilder sb = new StringBuilder();
变量的作用范围
{ }作用域
整数运算
移位运算
无符号右移运算:>>>
byte和short类型进行以为时,会首先转换为int再进行位移。
左移*2,右移%2
运算优先级
()!~++--*/%+-<<>>>>>&|+=-=*=/=
强制类型转换
int i=12345;
short s=(short)i;不能超出范围
类型提升
short类型与int类型进行运算时得到的结果是int类型。
位运算
按位与 &:有0为0,全1为1
按位或 |:有1为1,全0为0
按位非 ~:1~0,0~1
浮点数运算
Java浮点数遵循IEEE-754标准。
类型提升:如果参与运算的两个数其中一个是整型,那么整型可以自动提升到浮点型。
溢出:整数运算在除数为
0时会报错,而浮点数运算在除数为0时,不会报错,但会返回几个特殊值:NaN表示Not a NumberInfinity表示无穷大-Infinity表示负无穷大
强制转型
int i=(int)23.55;//i=23
int i1=(int)-23.55;//i=-23四舍五入:对浮点数加0.5再进行强制类型转换。
布尔运算
布尔运算是一种关系运算,包括以下几类:
比较运算符:
>,>=,<,<=,==,!=与运算
&&或运算
||非运算
!
关系运算符的优先级从高到低依次是:
!>,>=,<,<===,!=&&:有一个为false则结果为false||:有一个true则结果为true
短路运算:提前知道运算结果而不再运算。
三元运算符:b?x:y
int a=3;
int b=4;
int x=a>b?0:1;
字符
类型:char
char s='\u0041';//'A'十六进制0041=十进制65
字符串
类型:String 引用类型
表示:"......"
String s="";//零个字符
String s1="abc";//三个字符
String s2="中文 hhh";字符串需要表示"时,用\转义符
String s="abac\"xxxx";
常见的转义字符包括:
\"表示字符"\'表示字符'\\表示字符\\n表示换行符\r表示回车符\t表示Tab\u####表示一个Unicode编码的字符
字符串连接
使用+连接
String s1="hello";
String s2="world";
string ss=s1+s2+"!";
System.out.println(ss);多行字符串
用"""..."""表示
String s="""
sdffrfe
sdfwrwf
sdfreg
""";
System.out.println(s);不可变特性
字符串内容不可变。
空值null:引用类型的变量可以指向一个空值
null,它表示不存在,即该变量不指向任何对象。数组类型
定义数组类型的变量:使用数组类型int [],数组变量初始化需要使用new int[5],表示可容纳五个int类型元素的数组。
int[] ns=new int[5];
特点:
数组所有元素初始化为默认值,整型都是
0,浮点型是0.0,布尔型是false;数组一旦创建后,大小就不可改变。
修改数组中的元素:使用赋值语句
ns[1]=98;
获取数组大小:数组变量.length
int[] ns=new int[5];
System.out.println(ns.lenght);定义数组时初始化元素
int[] ns=new int[5] {1,2,3,4,5};
int[] ns1={1,2,3,4,5};
System.out.println(ns.lenght);
System.out.println(ns1.lenght);
字符串数组
定义字符串数组:
String[] ns={"aba","vdf","fdwf"};字符串内容不会更改,仅指向更改
day2Java程序基础的更多相关文章
- ROS_Kinetic_12 ROS程序基础Eclipse_C++(三)usb camera
ROS_Kinetic_12 ROS程序基础Eclipse_C++(三)usb camera 软件包下载地址:https://github.com/bosch-ros-pkg/usb_cam 下载后, ...
- ROS_Kinetic_11 ROS程序基础Eclipse_C++(二)
ROS_Kinetic_11 ROS程序基础Eclipse_C++(二) 编写简单的Service和Client (C++): http://wiki.ros.org/cn/ROS/Tutorials ...
- ROS_Kinetic_10 ROS程序基础Eclipse_C++(一)
ROS_Kinetic_10 ROS程序基础Eclipse_C++(一) 编写简单的消息发布器和订阅器 (C++) http://wiki.ros.org/cn/ROS/Tutorials/Writi ...
- Java并发程序设计(二)Java并行程序基础
Java并行程序基础 一.线程的生命周期 其中blocked和waiting的区别: 作者:赵老师链接:https://www.zhihu.com/question/27654579/answer/1 ...
- 微信小程序基础
前言 什么是微信小程序,它是一种轻量级的APP,它与常规App来说,无需下载安装即可使用,它嵌于微信App中,要使用微信小程序你只需要搜索一下微信小程序的名称就好,如近期的"Google的画 ...
- 小程序基础知识点讲解-WXML + WXSS + JS,生命周期
小程序基础 小程序官方地址,小程序开发者工具,点击此处下载.在微信小程序中有一个配置文件project.config.json,此文件可以让开发者在不同设备中进行开发. 微信小程序共支持5种文件,wx ...
- 自学Linux Shell19.1-gawk程序基础特性
点击返回 自学Linux命令行与Shell脚本之路 19.1-gawk程序基础特性 linux世界中最广泛使用的两个命令行编辑器: sed gawk 1. gawk概念 awk是一个强大的文本分析工具 ...
- JAVA并行程序基础
JAVA并行程序基础 一.有关线程你必须知道的事 进程与线程 在等待面向线程设计的计算机结构中,进程是线程的容器.我们都知道,程序是对于指令.数据及其组织形式的描述,而进程是程序的实体. 线程是轻量级 ...
- Hadoop程序基础模板
分布式编程相对复杂,而Hadoop本身蒙上大数据.云计算等各种面纱,让很多初学者望而却步.可事实上,Hadoop是一个很易用的分布式编程框架,经过良好封装屏蔽了很多分布式环境下的复杂问题,因此,对普通 ...
- 到头来还是逃不开Java - Java13程序基础
java程序基础 没有特殊说明,我的所有学习笔记都是从廖老师那里摘抄过来的,侵删 引言 兜兜转转到了大四,学过了C,C++,C#,Java,Python,学一门丢一门,到了最后还是要把Java捡起来. ...
随机推荐
- requests断点续传功能
requests取消ssl验证会出现告警InsecureRequestWarning,取消告警如下: import urllib3urllib3.disable_warnings(urllib3.ex ...
- xss.haozi.me靶机XSS练习心得
xss.haozi.me靶机XSS练习心得 //server code function render (input) { return '<div>' + input + '</d ...
- 获取网页数据 Qt 从客户端发起http响应
Qt 从客户端发起http响应 获取网页数据实现代码 void Test::GetHttp(QString strServerIP,QString strUserName,QString strPas ...
- Django 之 ORM1
1.ORM简介 MVC或者MVC框架中包括一个重要的部分,就是ORM,它实现了数据模型与数据库的解耦,即数据模型的设计不需要依赖于特定的数据库,通过简单的配置就可以轻松更换数据库,这极大的减轻了开发人 ...
- git stash (pycharm/vscode的gui演示)
git stash (pycharm/vscode的gui演示) 场景 代码刚写到一半,发现线上bug需要马上修改部署上线 此时手头的代码写一半,提交根本跑不动甚至影响原来的业务了 回滚就白瞎搬了好几 ...
- TypeScript - 构造函数 constructor
class Dog { // 需要先定义,才能在constructor中this指向 name: string; age: number; // 构造函数,会在对象创建时调用 // new Dog() ...
- 如何用jupyter打开代码并租用服务器进行运行
1.启用环境并打开项目 s1:打开anaconda,进入到anaconda prompt命令窗口: s2:(我的代码是pytorch,所以我的环境也是pytorch) a.激活环境:conda act ...
- <三>JMeter逻辑控制器简介
一.添加HTTP请求线程 1.运行jmeter.bat进入jmeter界面 2.修改语言为简体中文 3.右键测试计划添加一个线程组 4.右键线程组添加一个HTTP请求 5.填写HTTP请求服务名称和路 ...
- A Super Hero
DP? QwQ这题似乎不能直接贪心2333-- 阶段 很明显的阶段性,\(n\)关便为\(n\)个阶段, 状态 分好阶段后,容易构造出状态的表达: \(f[i,j]\)表示Ma5termind在最开始 ...
- curl下载远程图片到服务器
<?php //curl下载远程图片到服务器 方法 function download($url, $path = 'images/'){ $ch = curl_init(); $names = ...