2、java基础
1、注释 -----> 注释不会出现在字节码文件中。即Java编译器编译时会跳过注释语句。
- // 单行注释 ,注释内容从//到本行末尾
- /* */ 多行注释,/* */ 注释不能嵌套
- /** */文档注释,可以通过JDK提供的Javadoc命令,生成程序的API文档
2、标识符 -------> 常量、变量、方法、类和包等的名称
- 规则:
• 必须以字母、_下划线、美元符$开头。
• 其它部分可以是字母、下划线“_”、美元符“$”和数字的任意组合
• 大小写敏感,长度无限制。
• 不可以是Java的关键字。
- 注意:Java不采用通常语言使用的ASCII字符集,Java采用unicode这样的标准的国际字符集。
3、字符集
• ASCII 英文字符集 1个字节
• ISO8859-1 西欧字符集 1个字节
• BIG5 台湾的大五码,表示繁体汉字 2个字节
• GB2312 大陆使用最早、最广的简体中文字符集 2个字节
• GBK GB2312的扩展,可以表示繁体中文 2个字节
• GB18030 最新GBK的扩展,可以表示汉字、维吾尔文、藏文等中华民族字符 2个字节
• Unicode 国际通用字符集 2个字节
4、数据类型:Java是一种强类型语言。常量是有数据类型的。变量都必须声明其数据类型。
5、变量
• Java是一种强类型语言,每个变量都必须声明其类型。Java变量是程序中最基本的存储单元,其要素包括变量名,变量类型和作用域。变量在使用前必须对其声明, 只有在变量声明以后,才能为其分配相应长度的存储单元。
• 声明格式为:type varName [=value] [{,varName[=value]}] ;
• 注意事项:
每个变量都有类型,类型可以是基本类型,也可以是引用类型。
变量名必须是合法的标识符。
• 变量分类:
局部变量:方法或语句块里定义的变量,生命周期是从定义到方法或语句块结束。局部变量必须先赋值即初始化,才可以使用。
成员/实例变量:在类里部,方法外部定义的变量。它属于对象,生命周期伴随着对象。如果不赋值进行初始化,它会自动进行初始化。
静态变量:使用static修饰,从属于类。生命周期始终伴随类--->类加载到卸载。
6、常量
- 常量表示不能改变的数值。在Java里通常用final修饰常量,这个常量就不可以修改了。
- final String NAME = "hello" ----> 这个苍凉不能改变。
7、数据类型详细说明
整型
(1)整型常量:默认是int类型,声明long类型需要在数值后面加上L。
• 十进制整数,如:99, -500, 0
• 八进制整数,要求以 0 开头,如:015
• 十六进制数,要求 0x 或 0X 开头,如:0x15
(2) 整型变量
- 浮点型
(1)浮点常量:默认是double,如果需要转化为float,需要在数值后面加上F/f。浮点数存在舍入误差,很多数字不能精确表示。如果需要进行不产生舍入误差的精确数字计算,需要引用
BigDecimal类。
• 十进制数形式,例如:3.14 ;314.0 ;0.314
• 科学记数法形式,如 314e2; 314E2 ;314E-2
(2)浮点变量:
• float类型:单精度类型,尾数可以精确到7位有效数字,在很多情况下,float类型的精度很难满足需求。
• double类型:双精度类型 精度是float类型的两倍,绝大部分应用程序都采用double类型。
- 字符--占用2个字节。
• 单引号用来表示字符常量。例如‘A’是一个字符,它与“A”是不同的,“A”表示含有一个字符的字符串。
• char 类型用来表示在Unicode编码表中的字符。
• Unicode编码被设计用来处理各种语言的所有文字,它占2个字节,可允许有个字符;ASCII码占1个字节,可允许有128个字符(最高位是0),是Unicode编码表中前128个字符。
• Java 语言中还允许使用转义字符 ‘\’ 来将其后的字符转变为其它的含义,char c2 = '\n'; //代表换行符
• char类型在内存中存储的是该字符的Unicode编码值,所以char类型可以当做int类型来处理
- 布尔
• boolean类型有两个值,true和false
• boolean 类型用来判断逻辑条件,一般用于程序流程控制
• 实践:请不要这样写:if ( is == true && done == false ) ,只有新手才那么写。对于任何程序员 if ( whether && !done ) 都不难理解吧。所以去掉所有的==fasle 和 ==true。
8、运算符
• 算术运算符: +,-,*,/,%,++,--
• 赋值运算符 =
• 扩展赋值运算符:+=,-=,*=,/=
• 关系运算符: >,<,>=,<=,==,!=
• 逻辑运算符: &&,||,!
• 位运算符: &,|,^,~ , >>,<<,>>> (了解!!!)
• 条件运算符 ?:
• 二元运算符类型提升:
• 整数运算:
• 如果两个操作数有一个为Long, 则结果也为long
• 没有long时,结果为int。即使操作数全为shot,byte,结果也是int.
• 浮点运算:
• 如果两个操作数有一个为double, 则结果为double.
• 只有两个操作数都是float, 则结果才为float.
• 一元运算符(++, --):
int a = 3;
int b = a++; //执行完后,b=3。先给b赋值,再自增。
int c = ++a; //执行完后,c=5。先自增,再给b赋值
• 关系运算符用来进行比较运算
• 关系运算的结果是布尔值:true/false
• 逻辑运算符与布尔操作数一起使用,组成逻辑表达式
• 逻辑表达式的结果是布尔值
• &和&&的区别
• “&”:无论任何情况,“&”两边的表达式都会参与计算。
• “&&”: 当“&&”的左边为false,则将不会计算其右边的表达式。即左false则false
• “|”和“||”的区别与“&”和“&&”的区别类似。
• 条件运算符
• 语法格式: x ? y : z
• 执行过程: 其中 x 为 boolean 类型表达式,先计算 x 的值,若为true,则整个三目运算的结果为表达式 y 的值,否则整个运算结果为表达式 z 的值。
9、基本数据类型之间的转换
(1)自动转换
- 算术运算时的转换
操作数1类型 操作数2类型 转换后类型
byte、short、char int int
byte、short、char、int long long
byte、short、char、int、long float float
byte、short、char、int、long、float double double
- 赋值运算时的转换
• 类型转换的方向
• 低------------------------------------------------------>高
• byte —> short,char—>int —>long—>float —>double
(2)强制转换
• 强转时,当心丢失数据或失真
• 当将一种类型强制转换成另一种类型,而又超出了目标类型的表示范围,就会被截断成为一个完全不同的值。
(3)总结
• =右侧:所有变量先转换为字节数最多的数据类型,再计算
• =两侧:左侧宽度>右侧宽度 自动转换
• 左侧宽度<右侧宽度 强制转换
• 特例:可以将整型常量直接赋值给byte, short, char等类型变量,而不需要进行强制类型转换,只要不超出其表数范围
• short b = 12; //合法
• short b = 1234567; //非法
10、流程控制语句
- if 单分支选择结构
double i i = 6 * * Math. random ();
double j = 6 * * Math. random ();
double k = 6 * * Math. random ();
int count = ( int ) (i i + j + k);
if(count > 15 ) {
System. out .println“ (“ 今天手气不错 ”);
} }
if(count >= 10 && count <= 15) { // 错误写法: 10<count<15
System. out .println“ (“ 今天手气很一般 ”);
} }
if(count < 10) {
System. out .println“ (“ 今天手气不怎么样 ”);
} }
System. out .println" (" 得了 " + count + " 分 "); 要求必须是布尔表达式
- if-else双分支选择结构
double r = 4 * * Math. random ();
double area = Math.I PI * * Math. pow (r, 2);
double circle = 2 * * Math.I PI * * r;
System. out .println“ (“ 半径为: ” + r);
System. out .println“ (“ 面积为: ” + area);
System. out .println“ (“ 周长为: ” + circle);
if(area >= circle) {
System. out .println“ (“ 面积大于等于周长 ”);
} else {
System. out .println“ (“ 周长大于面积 ”);
} }
- If-else if-else多分支选择结构
int age = ( int ) (100 * * Math. random ());
System. out .print“ (“ 年龄是 ” + age + “, 属于 ”);
if (age < 15) {
System. out .println“ (“ 儿童, 喜欢玩! ”);
} else if (age < 25) {
System. out .println“ (“ 青年, 要学习! ”);
} else if (age < 45) {
System. out .println“ (“ 中年, 要工作! ”);
} else if (age < 65) {
System. out .println“ (“ 中老年, 要补钙! ”);
} else if (age < 85) {
System. out .println“ (“ 老年, 多运动! ”);
} else {
System. out .println“ (“ 老寿星, 古来稀! ”);
} }
- switch多分支选择结构
switch (表达式) {
case 值1 :
语句序列;
[break];
case 值2:
语句序列;
[break] ;
… … … … …
[default:
默认语句 ;]
}
- switch多值选择结构
char c = ‘a’;
int rand =( int ) (26* * Math.random ());
char c2 = (char)( c+rand; );
System.out.print (c2 + “: ”);
switch (c2) {
case ‘a’:
case ‘e’:
case ‘i i: ’:
case ‘o’:
case ‘u’:
System.out.println“ (“ 元音 ”); break;
case ‘y’:
case ‘w’:
System.out.println“ (“ 半元音 ”); break;
default:
System.out.println“ (“ 辅音 ”);
} }
- while循环 --->四个结构:初始化、条件判断、循环体、迭代。 先判断,后执行。
public class WhileTest { {
public static void main(String[] args ) {
int i i = 0;
int sum = 0;
while (i i <= 100) {
sum += i i ; //sum = sum+i ;
i ++;
} }
System.out.println ("Sum= " + sum);
} }
} }
- do-while循环-->先执行,后判断。
While 和 do while 的区别:
Do while 总是保证循环体会被至少执行一次!
这是他们的主要差别
int a = 0;
while(a<0){
System. out .println (a);
a++;
} }
System. . out .println (“-----”);
a=0;
do{
System. out .println (a);
a++;
} while (a<0);
- for循环
• 语法形式
for (初始表达式;布尔表达式;步进) {
循环体;
}
• 注意事项
• for循环在执行条件测试后,先执行程序部分,再执行步进。
• 在for语句的初始化部分声明的变量,其作用域为整个for循环体
• “初始化”和“循环条件表达式”部分可以使用逗号来执行多个操作, 如果三个部分都为空语句(分号不能省),相当于一个无限循环
- 跳转语句---break和continue
• 在任何循环语句的主体部分,均可用break控制循环的流程。break用于强行退出循环,不执行循环中剩余的语句。(break语句还可用于多支语句switch中)
• continue 语句用在循环语句体中,用于终止某次循环过程,即跳过循环体中尚未执行的语句,接着进行下一次是否执行循环的判定。
生成 0-100 随机数,直到生成 88 为止,停止循环
int total = 0;
System.out.println(“Begin”);
while(true) {
total++;
int i = (int)Math.round(100 * Math.random());
if(i == 88) break;
}
System.out.println("Game over, used " + total + " times.");
把 100~150 之间不能被3整除的数输出
for (int i = 100; i < 150; i++) {
if (i % 3 == 0)
continue;
System.out.println(i);
}
- 跳转语句---return
• return语句从当前方法退出,返回到调用该方法的语句处,并从该语句的下条语句处继续执行程序。
• 返回语句的两种格式(具体到方法时详细讲解)
1、return expression
返回一个值给调用该方法的语句。
返回值的数据类型必须和方法声明中的返回值类型一致或是精度低于声明的数据类型。
2、return
当方法声明中用void声明返回类型为空时,应使用这种返回类型,它不返回任何值。
2、java基础的更多相关文章
- Java基础知识(壹)
写在前面的话 这篇博客,是很早之前自己的学习Java基础知识的,所记录的内容,仅仅是当时学习的一个总结随笔.现在分享出来,希望能帮助大家,如有不足的,希望大家支出. 后续会继续分享基础知识手记.希望能 ...
- [Java面经]干货整理, Java面试题(覆盖Java基础,Java高级,JavaEE,数据库,设计模式等)
如若转载请注明出处: http://www.cnblogs.com/wang-meng/p/5898837.html 谢谢.上一篇发了一个找工作的面经, 找工作不宜, 希望这一篇的内容能够帮助到大 ...
- 【JAVA面试题系列一】面试题总汇--JAVA基础部分
JAVA基础 基础部分的顺序: 基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法 线程的语法,集合的语法,io 的语法,虚拟机方面的语法 每天几道,持续更新!! 1.一个". ...
- 最适合作为Java基础面试题之Singleton模式
看似只是最简单的一种设计模式,可细细挖掘,static.synchronized.volatile关键字.内部类.对象克隆.序列化.枚举类型.反射和类加载机制等基础却又不易理解透彻的Java知识纷纷呼 ...
- java基础练习 字符串,控制流,日历,日期等
1,对基本控制流程的一些练习 package org.base.practice3; import org.junit.Test; /** * Created with IntelliJ IDEA. ...
- Java基础知识【下】( 转载)
http://blog.csdn.net/silentbalanceyh/article/details/4608360 (最终还是决定重新写一份Java基础相关的内容,原来因为在写这一个章节的时候没 ...
- Java基础知识【上】(转载)
http://blog.csdn.net/silentbalanceyh/article/details/4608272 (最终还是决定重新写一份Java基础相关的内容,原来因为在写这一个章节的时候没 ...
- java基础学习03(java基础程序设计)
java基础程序设计 一.完成的目标 1. 掌握java中的数据类型划分 2. 8种基本数据类型的使用及数据类型转换 3. 位运算.运算符.表达式 4. 判断.循环语句的使用 5. break和con ...
- Java基础加强之多线程篇(线程创建与终止、互斥、通信、本地变量)
线程创建与终止 线程创建 Thread类与Runnable接口的关系 public interface Runnable { public abstract void run(); } public ...
- java基础知识小总结【转】
java基础知识小总结 在一个独立的原始程序里,只能有一个 public 类,却可以有许多 non-public 类.此外,若是在一个 Java 程序中没有一个类是 public,那么该 Java 程 ...
随机推荐
- git 命令详细
git是代码管理工具 github是基于git实现的代码管理平台 git --version 查看git版本 git remote -v 查看clone地址 git init 初始化git //全局设 ...
- MailKit系列之转发电子邮件
原文:http://www.it1352.com/429181.html 问题 我尝试通过MailKit访问一个IMAP账号,我设法下载邮件(作为的MimeMessage),并在某些时候我需要转发给其 ...
- go语言map操作
package main import "fmt" func main() { var m = map[int]string{ 90: "优秀", 80: &q ...
- 二、vue之 使用vscode配置
vue之 使用vscode配置 visual studio code 简称vscode,下图为图标 ... 开启vscode ... 1.导入文件夹,选择菜单栏 文件-打开文件夹->选择相应已 ...
- NB学校的NB课程的NB教材——CSAPP
CMU是全美以至全球公认的CS最猛的大学之一,没办法,作为CS的发源地,再加上三位神一样的人先后在此任教:Alan Perlis(CS它祖宗+第一届Turing奖获得者).Allen Newell(A ...
- 从头开始学Maven【依赖范围】
例如 <dependencies> <dependency> <groupId></groupId> <artifactId></ar ...
- python2使用eval 让除法可以保留小数
使用的Python版本2.7, 我在使用eval('1/3')发现一个问题,结果都是去掉小数,保留了整数.但是我需要保留小数,各种查资料,最后在一大神指点下,成功解决这个问题,解决办法是: 加载模块: ...
- Excel藏的很深(1)
Excel 的强大功能, 神奇! 1.快速定位数据 ctrl+g 定位条件; 或者菜单中: 查找与选择->定位条件 (1) 删除所有的错误值(ref这种) (2) 实现空格自动填充0: ctr ...
- vue交互
1)如果vue想做交互,本身的框架是不支持的,需要引入vue-resurce库交互方式:get.post.jsonp 1.get方式methods: { get: function () { / ...
- 饮冰三年-人工智能-Python-28 企业官网(组合搜索)
1 2:组合搜索 2.1 创建model类 from django.db import models class Direction(models.Model): """ ...