Java基础语法
回顾:
1. java特点 跨平台,自动垃圾回收,面向对象,安全性,开放性。
2. jvm,jre,jdk jvm:java虚拟机,jre java运行时环境,jdk:开发工具包,里面包含了jre
3. 设置环境变量 path—可执行文件的路径,classpath—jar包lib:为了寻找class文件,为了使用jdk自带的lib下面常用的类
4. 编写一段java程序,java程序都是从main方法开始运行。
5. 如何编译和运行 Hello.java javac.exe Hello.java java.exe Hello
1. 关键字
被编程语言赋予特定含义的单词叫做关键字。
关键字都是小写。
关键字:
用于定义数据类型的关键字
class interface byte short int
long float double char boolean
void
用于定义数据类型值的关键字
true false null
用于定义流程控制的关键字
if else switch case default
while do for break continue
return

用于定义访问权限修饰符的关键字
private protected public
用于定义类,函数,变量修饰符的关键字
abstract final static synchronized
用于定义类与类之间关系的关键字
extends implements
用于定义建立实例及引用实例,判断实例的关键字
new this super instanceof
用于异常处理的关键字
try catch finally throw throws
用于包的关键字
package import
其他修饰符关键字
native strictfp transient volatile assert

  1. 注释
    注释就是对代码的解释。给开发人员阅读的。
    单行注释// ctrl+/
    多行/*

*/
快捷键ctrl+shift+/
反注释ctrl+shift+\
javadoc注释/* /里面的注释将在生成文当时候出现
javadoc注释只能在类和方法上
javadoc命令可以抽取注释生成html文件
javadoc命令格式:
javadoc –d (生成到什么文件夹) ( 把谁生成doc文档)
例如:javadoc -d d:/doc HelloWorld.java 将doc文档生成到doc目录下。
Index.html

3.包(package import)
定义:按照某种逻辑将很多的类进行隔离。
更好的定位类,把相同功能的类分到一个包下面。是为了防止类同名而引入的一种机制。类似于文件夹。
注意包名不能用java,一般情况下会采用公司的简称,包名一定要小写。因为jdk里面已经有java包。可以观察下jdk文档下面包的基本结构。
使用包的规则:
(1)package语句必须作为Java文件的第一句非注释语句,放在Java文件的第一行。
(2)一个Java文件只能指定到一个包下,该文件中可以有多个类,但是只能有一个public类。
(3)同一个包中的类可以直接访问。
(4)不同包下的类的访问时,要引入包,引入规则是:import 父包名.子包名.类名;

包名一定要小写,一般情况下包名会采用你工作单位或者所读学校组织的名字简写。

4.jar命令
jar一般情况下用来压缩class文件。目的:1.保护代码 2。方便调用
jar打包 jar cvf jiami.jar HelloWorld.class将helloworld程序打包
如果一个目录下打包:jar cvf classes.jar com
Com是指某个包含class文件的目录。

如果将jar包做成可以运行的jar包,要求生成清单文件并修改manifest.mf:
Manifest-Version: 1.0
Main-Class: ui.JFrameMain
Class-Path: jtds-1.2.jar c3p0-0.9.1.2.jar
esri_mo20.jar esri_mo20res.jar jsde83_sdk.jar
解释一下:
Manifest-Version mf文件版本号,这行照抄
Main-Class 包含main函数的类,程序的入口
Class-Path 用到的一些包
注意:每行的“:”(冒号)用来分隔键值对。冒号后边一定要跟一个空格!!!
依赖的jar包之间也用空格分隔。

5.标示符(标识符)
标识符:就是给类,接口,方法,变量等起名字时使用的字符序列

组成规则:字母、数字、下划线、货币符号$,数字不能写在开头。

注意:标示符规范应做到望文生义,变量和类的起名准则是变量第一个字母小写,类名第一个字母大写。

当然也要注意缩写,名字太长不适合做变量,影响开发效率。如大学生英语成绩。

关键字不能用于标示符 如:class public static void package import
不能以数字开头。
类名首字母大写,如果类名有多个单词构成,每个单词首字母大写。
如果是变量,首字母小写,如果变量有多个单词构成,首字母小写,后面的单词首字母大写。
如果是常量,全部字母都大写。如果有多个单词构成,单词之间用_(下划线)隔开。
6.变量与字面值
变量定义:
类型(8种基本类型或者对象类型) 变量名称(标示符)=赋值
int a=0;
变量分为局部变量和属性(成员变量),其中局部变量一定要先初始化才能使用。
局部变量就是写在方法里面的变量。
成员变量就是写在类里面但是在方法之外。
变量基本类型:
基本数据类型8种和对象类型

整数类型:(byte,short,int,long)
byte字节类型–1,short短整型—2byte,int整型–4,long–8长整型
1byte=8bit 0,1 -128-127

扩展知识点:字节是衡量IO流量的基本单位,常用衡量单位有:1KB=1024B,1MB=1024KB,1GB=1024MB
1TB=1024GB
1PB=1024TB
1EB=1024PB
1ZB=1024EB
1YB=1024ZB
1DB=1024YB
1NB=1024DB

小常识:1.平时买的U盘使用的容量总比实际说的小。因为u盘是1000进的。
2.10M网速为何真实带宽差的太多。10mbit ps=10*1024*1024/8=1.31Mbyte/s

浮点数类型:float–4,单精度double—8 双精度
float f=1.3f; double d=1.3;
计算过程中可能会出现精度丢失,因为某些小数无法用二进制准确表示导致的。
1.1——————–
1——-1
0.1——–00001100110011……
注意浮点数计算精度丢失问题,分析原因是因为计算机使用二进制进行计算的,有些小数无法用有限的二进制为表示,出现无限循环,导致最终运算精度丢失,

可以用Java api里面的BigDecimal做处理
处理方式:double a=2.0;
double b=1.1;
System.out.println(BigDecimal.valueOf(a).subtract(BigDecimal.valueOf(b)).doubleValue());

字符类型:
定义:一个文字就是一个字符。
C语言一个字符几个字节? 1个byte Ascii
Java语言的一个字符由2个byte

char 一个文字 char c=’A’ char c=’烟’ char c=’’ 一个字符有几个字节组成?

韩语(你好):여보세요 왜 쓰다
日语:こんにちは

Unicode编码 万国码
Char c=65;
char c=’\u4f60’;
Unicode写法是:’\u’+十六进制组成的几位数字
如果用命令方式可以把本地的文字转成unicode形式:
C:\Users\chidianwei>native2ascii
你好
\u4f60\u597d
A
A

布尔类型:true,false
boolean b=true;

对象类型:除了8种基本类型之外的
类就是类型,是抽象的。
以类作为模板,形成具体的对象。
Class Student{

Main
Sum(int a,int b)

} //定义类

如何使用一个类创建一个对象?
HelloOracle h=new HelloOracle();
int c=h.sum(1, 1);
System.out.println(c);

类型转换(类型提升和强制转换)

1.类型变量赋值:
原则是等号左右两边类型要相同或者兼容。不然编译器报错。
比如float a=0.9;报错,原因java认为小数都是double型,但是却赋给了float。
允许一个范围小的类型赋值给一个范围大的类型。

2.自动类型提升:

-两个变量进行运算或者一个变量赋值给另一个变量,都可能产生类型提升。就强原则。
byte b=2;
int c=b+2;//两个变量进行运算最后的结果类型遵循就强原则

    byte b1=6;int d=b1+b;//两个byte类型进行运算得到的是int型double d1=2.8;double d2=d1/8+35;System.out.println(d2);//运算的时候遵循就强原则System.out.println(5/2);//两种相同类型运算得到的还是这个类型

3.强制类型转换:

但有可能导致运行时候报错。
int a=(int)1.5; a=1;导致数据精度丢失
Char a=(char)3.5 编译不会报错,但是根本不兼容,所以运行报错。
byte b=1;
b=(byte)(b+2);//强制类型转化就是在值得前面加上一对括号,括号里面写要转成什么类型,右边的不一定
//是一个具体值,也可以能是一个式子,需要打一对括号
int a=90;
char c=(char)(a+12);

    //注意,并不是所有的强制类型转化都是合理的,有些地方大家不要落入陷阱byte b2=(byte)9.8;

思考一个问题?
byte b=(byte)130;问b的值是多少? -126
局部变量定义和使用
局部变量就是定义在方法里面的变量。作用范围就是方法体。
注意:同一个作用域范围内的局部变量不能重名。
局部变量作用范围有两个:类方法中,方法里面的{}体中。出了大括号就失效。
局部变量如何使用?
1先定义后使用。
2先赋值,后使用。
3局部变量不能重命名。
局部变量的作用域其实就是最靠近它的那对大括号,出了大括号这个区域,变量失效。

7.表达式与运算符

赋值表达式 :
比如a=0就是代表一个赋值表达式,整个式子的值是0
Int a=0 这个式子以后,a的值是0,整个表达式的值等于最终a的值。
Int a=9;
a=(a=19);

四则运算符
+ - * / %
//四则运算
int a=9;
int b=8;
System.out.println(“a乘以b的值是:”+a*b);
System.out.println(“a除以b的值是:”+a/b);
System.out.println(“a除以b的的余数值是:”+a%b);
a=-9;
System.out.println(“a除以b的的余数值是:”+a%b);

赋值表达式可以结合四则运算付:
int a=9;
int b=8;
a+=b;//a=a+b a-=b *=,/=,%=
System.out.println(a);

相等运算符:
== !=
计算结果只可能有两个值:true,false
int a=9;
int b=8;
System.out.println(a!=b);//true
System.out.println(a==b);//false

移位运算符:
前提知识点1:计算机进制
 Java针对整数常量提供了4种表现形式
• 二进制
• 八进制
• 十进制
• 十六进制
 进制概述
进制:就是进位制,是人们规定的一种进位方法。 对于任何一种进制–X进制,就表示某一位置上的数运算时是逢X进一位。二进制就是逢二进一,八进制是逢八进一,十进制是逢十进一,十六进制是逢十六进一。
 不同进制的数据组成
• 二进制
• 由0,1组成。以0b开头
• 八进制
• 由0,1,…7组成。以0开头
• 十进制
• 由0,1,…9组成。整数默认是十进制的
• 十六进制
由0,1,…9,a,b,c,d,e,f(大小写均可)。以0x开头

进制转换
二进制 0010—十进制:0*2的0次方+1*2的1次方+0*2的2次方+。。。
十进制 9—–二进制:

十进制和各种进制转换:

Java菜鸟逆袭之基础语法上相关推荐

  1. Java菜鸟逆袭之基础语法下

    前提知识点2:原码,反码,补码  有符号数据表示法 • 在计算机内,有符号数有3种表示法:原码.反码和补码.所有数据的运算都是采用补码进行的. • 原码 • 就是二进制定点表示法,即最高位为符号位, ...

  2. Java菜鸟逆袭之入门篇(附讲解)

    作者的话 由于该系列教程为本人原创,请勿随意转载,文章内容为课堂笔记,最好结合后面提供视频链接,均免费分享,后续陆续增加内容-. Java系列课程简介 章节安排 1-5:java语法,流程结构,函数, ...

  3. 【菜鸟逆袭记】之初识操作符

    操作符 1.算术操作符 (1)前置和后置 (2)取膜(%)和除法(/) 2.移位操作符 3.位操作符 4.赋值操作符 5.单目操作符 (1)逻辑反操作( !) (2)sizeof (3)强制类型转化 ...

  4. 菜鸟逆袭记之操作符详解

    菜鸟逆袭记之操作符详解 1.算术操作符 2.移位操作符 (1)左移操作符 (2)右移操作符 3.位操作符 4.赋值操作符 5.单目操作符 (1)取地址(&) (2)sizeof与数组 (3)前 ...

  5. 《俗人笔记》之《Java基础语法上》

    基础前言: 二进制: 十进制转二进制:使用除以2获取余数来算 二进制转十进制:按8421编码 字节: 最小的存储单位是字节,最小的信息单位是位(bit) 1B=8bit 1KB=1024B 依次类推 ...

  6. python的逆袭之路_菜鸟逆袭之路:从月薪8千到2万,勇敢的去做改变才会成功

    最近,一位在上班时间努力工作,利用下班时间自学python,逐渐改变自己工作状态,薪资翻倍的的职场小张给我发来了下面这样的内容.Python对于很多程序员来说只是很一门基础的语言,但是却逐渐在非IT行 ...

  7. 屌丝逆袭高富帅之JAVA之路

    据说学习JAVA可以逆袭高富帅,所以本屌丝来了.一直在想一个问题,电脑上的这个软件.网站是怎么做的.后来,去查资料.是用语言写出来的.哇!写出来的.什么玩意儿写出来的?编程语言.神马是编程语言?这个是 ...

  8. java学习之屌丝逆袭

    Java学习攻略之视频学习篇 --屌丝逆袭之7K轻松拿 屌丝靓妹,你现在学习java还在抱着一本本学习资料学吗?见过<java编程思想>这本书吧,这本书确实很好,那么厚一本,你真有勇气看下 ...

  9. PPT菜鸟的逆袭秘籍

    PPT菜鸟的逆袭秘籍 链接:https://pan.baidu.com/s/1EfpYwlKTwOiRC-Pbqwa84Q 提取码:l6qz 天翼云盘下载不限速,如果你的下载速度较慢,建议使用天翼云下 ...

  10. 4W+字的Java并发面渣逆袭宝典?扶我起来,我还可以肝

    大家好,我是老三,面渣逆袭 继续,这节我们来盘一盘另一个面试必问知识点--Java并发. 这篇文章有点长,四万字,图文详解六十道Java并发面试题.人已经肝麻了,大家可以点赞.收藏慢慢看!扶我起来,我 ...

最新文章

  1. 解决虚拟机提示VMware Workstation cannot connect to the virtual machine的问题
  2. C#学习系列之二:变量
  3. Git远程库版本回滚
  4. map-reduce的八个流程
  5. VueRouter源码详细解读
  6. hough变换检测直线 matlab,求能够运行的用matlab进行hough变换直线检测的程序。急!...
  7. 黑客攻防:关于工业网络安全的那些事
  8. 15:46 2009-8-2 sql2005客户端装不上,碎片不能整理,createthread
  9. 839 - Not so Mobile
  10. 修改浏览器 User-Agent
  11. 屏幕中间html滚动字幕,Gom引擎屏幕中间滚动大字及屏幕其他信息滚动条脚本实例...
  12. php开发支付宝支付密码忘记了怎么办_php开发支付宝支付密码忘记了怎么办_玩机小技巧:OPPO手机忘记锁屏密码怎么办?......
  13. 绝地反击 我的战胜贫困的经历01 转载 整理
  14. YY语音CTO赵斌的技术创业
  15. 2018-2019 起风了,唯有努力生存
  16. 用tagcloud插件制作的超炫酷“云标签”(3D旋转和平铺),附前后台代码及标签配置页面
  17. centos7查看oracle监听端口,CentOS 7开放及查看防火墙firewall的端口
  18. 使用LVS和Keepalived搭建高可用负载均衡服务器集群
  19. 【matlab选题推荐四】基于图像识别的人脸考勤系统
  20. 都快投票了,尼日利亚大选也要推迟,是否是被操纵了?

热门文章

  1. 基于halcon的HSV颜色匹配实例
  2. 干货分享!软考中高项案例分析10大管理领域理论背诵要点
  3. PHP中使用 fsockopen curl 模拟异步处理
  4. HTML 简单日历制作方法
  5. linux删除某条历史命令,如何从Linux/Unix Bash shell上删除历史记录中的一条命令?...
  6. 建文高考成绩查询2021,2021届新高考语文强化模拟卷(三).pdf
  7. [网络诈骗]奈几利亚(奈及利亚), E-Mail 骗术
  8. origin软件画流程图_免费的网络拓扑流程图绘制软件(PaceStar LanFlow)
  9. 2021年10月考试总结
  10. 资深 Googler 深度解读 TensorFlow