想知道我大三是如何通过一个月时间自学Java,然后顺利找到实习工作的吗?如果你也想学习Java,学习一门语言,并且找到一份好的实习工作,那就学习以下的Java内容吧。文末有惊喜喔,记得点赞收藏喔!
下面演示如何创建、编译以及运行第一个程序:
- 打开代码编辑器(记事本,Ecplise,IDEA任何一个都可以),输入以下代码。
- 保存文件,并且命名为HelloWorld.java。
- 打开 cmd 命令窗口,进入目标文件所在的位置,使用 javac HelloWorld.java 命令编译源文件。
- 再输入 java HelloWorld 命令运行程序,即可输出字符串。
// 第一个Java程序
public class HelloWorld {
// 定义一个方法,它的功能是在电脑屏幕输出字符串 Hello World
public static void main(String[] args) {
System.out.println("Hello World"); // 输出 Hello World
}
}
上述说启动类加载器会加载读取磁盘上的字节码文件,那它怎么知道去哪里查找呢?默认情况下,会在当前目录下加载字节码文件,如果配置了环境变量classpath(注意,classpath属于java语言的环境变量,而path是属于操作系统的变量),classpath指定了类加载器加载字节码文件的位置。所以我们classpath会优先配置当前目录,也就是点号.
,然后再配置JDK一些核心库类的位置,如下:
.;%JAVA_HOME%\lib;%JAVA_HOME%\lib
Java中,已经定义了一个关键字,我们自己定义的标识符不能和关键字相同,所有关键字如下:
abstract | assert | boolean | break | byte |
---|---|---|---|---|
case | catch | char | class | const |
continue | default | do | double | else |
enum | extends | final | finally | float |
for | goto | if | implements | import |
instanceof | int | interface | long | native |
new | package | private | protected | public |
return | strictfp | short | static | super |
switch | synchronized | this | throw | throws |
transient | try | void | volatile | while |
除了Java自带的关键字,我们还可以定义自己的标识符,在Java 中,所有的组成部分都需要名字,类名、变量名以及方法名都被称为标识符。定义标识符需要遵循一些规则:
在Java中,可以使用修饰符来修饰类中方法和属性。主要有两类修饰符:
在Java中,有三种注释,注释主要用于对程序代码的解释说明,是给人看的,程序是不识别的。
/**
* 第一个程序,定义一个类
* 这是文档注释
*/
public class HelloWorld {
/*
* main方法,作为程序的入口
* 这是多行注释
*/
public static void main(String[] args) {
// 输出一行字符串,这是单行注释
System.out.println("Hello World");
}
}
在Java中,有许多数据,每一个数据都是有相关类型的,并且不同的数据类型占用的内存空间不一样。所以数据类型的作用就是告诉JVM在运行程序的时候给数据分配多大的内存空间。内存管理系统根据变量的类型为变量分配存储空间,分配的空间只能用来储存该类型数据。
在Java中,有两种数据类型:
变量本质是值内存中的一块空间,这块内存空间有数据类型,有名字,有字面值。我们通过变量来定义一个数据,变量是内存中存储数据的最基本单元。
所有的变量在使用前必须声明。声明变量的基本格式如下,type为Java数据类型。identifier是变量名。可以使用逗号隔开来声明多个同类型变量。
type identifier [ = value][, identifier [= value] ...] ;
int a, b, c; // 声明三个int型整数:a、 b、c
int d = 3, e = 4, f = 5; // 声明三个整数并赋予初值
byte z = 22; // 声明并初始化 z
String s = "我是字符串"; // 声明并初始化字符串 s
double pi = 10.562; // 声明了双精度浮点型变量 pi
char x = 'x'; // 声明变量 x 的值是字符 'x'。
Java语言支持的变量类型有:
- 类变量:独立于方法之外的变量,用 static 修饰。
- 实例变量:独立于方法之外的变量,不过没有 static 修饰。
- 局部变量:类的方法中的变量。
public class Variable{
static int allClicks=0; // 类变量
String str="hello world"; // 实例变量
public void method(){
int i =0; // 局部变量
}
}
在Java中,提供了一套丰富的运算符来操作变量,进行变量,数据间的运算。
顺序结构的程序语句只能被执行一次。如果您想要同样的操作执行多次,,就需要使用循环结构。
Java中有三种主要的循环结构:
while 循环,当while括号中的表达式为真(true)时,执行循环内存,直到表达式为假(false)时,退出循环
while( 布尔表达式 ) {
//循环内容
}
do…while 循环,如果满足条件,则进入循环,如果不满足条件,则退出循环。do…while 循环至少会执行一次。
do {
//循环内容
}while(布尔表达式);
for循环,比较常用的循环用法,并且可以控制按指定的次数循环,即for循环执行的次数是在执行前就确定的。
for(初始化; 布尔表达式; 更新) {
//循环内容
}
public class HelloWorld {
public static void main(String[] args) {
String[] arr = new String[]{
"aa", "bb", "cc"};
for (int i = 0; i < arr.length; i++) {
System.out.println(arr[i]);
}
}
}
break 主要用在循环语句或者 switch 语句中,用来跳出整个语句块。break 跳出最里层的循环,并且继续执行该循环下面的语句。
public class HelloWorld {
public static void main(String[] args) {
String[] arr = new String[]{
"aa", "bb", "cc"};
for (int i = 0; i < arr.length; i++) {
// i等于2时,退出循环
if (2 == i) {
break;
}
System.out.println(arr[i]);
}
}
}
// 输出 aa bb
continue 也是用于任何循环控制结构中。作用是让程序立刻跳转到下一次循环的迭代。
public class HelloWorld {
public static void main(String[] args) {
String[] arr = new String[]{
"aa", "bb", "cc"};
for (int i = 0; i < arr.length; i++) {
if (1 == i) {
// 跳过此次循环,继续下一次循环
continue;
}
System.out.println(arr[i]);
}
}
}
// 输出 aa cc
在程序中,有时我们想当表达式符合某个要求时,才执行一段代码,不符合时、执行另一段代码,这时可以用 if else 条件语句。
if(布尔表达式)
{
//如果布尔表达式为true将执行的语句
}
public class HelloWorld {
public static void main(String[] args) {
int a = 5;
if (a < 20) {
System.out.print("a小于20,所以执行这行语句");
} else {
System.out.println("a不小于20,则执行这行语句");
}
}
}
Java 语言中提供的数组是用来存储固定大小的同类型元素。我们可以声明一个数组变量,来存储多个相同类型的数据。
声明数组,数组需要声明才可以使用,以下2种方式都可以声明一个数组,dataType是数组的类型,arrayRefVar是数组的名字,推荐用第一种:
dataType[] arrayRefVar; // 首选的方法
dataType arrayRefVar[]; // 效果相同,但不是首选方法
以下是一个示例,定义一个double类型的数组和一个String类型的数组:
double[] doubleList;
String[] stringList;
创建数组,使用new关键字来创建数组
dataType[] arrayRefVar = new dataType[arraySize];
以下是创建一个长度为10的字符串数组
String[] arr = new String[10];
使用数组,我们通过数组下标来使用数组的每一个元素
String[] arr = new String[10];
arr[0] = "你好!";
System.out.println(arr[0]);
因为Java涉及内容较多,篇幅较大,就不一一列出所有内容。我在大学时候,通过一套视频教程自学一个月时间,然后找到了第一份实习。这套Java视频内容很全,很时候小白入门学习(0基础入门),学完你会完全掌握Java,并且找到一家公司实习是没问题的。在大学就应该要好好珍惜学习的机会,提升自己,才能为以后找到好的工作。
以上是我学习的Java教程,地址:https://www.bilibili.com/video/BV1Rx411876f
下载地址: http://www.bjpowernode.com/javavideo/110.html?csdncp
如果你坚持学完这套Java教程,你会爱上Java,有了Java基础知识,你就能再进阶学习深入点的Java知识,Java框架等等。学习一门语言。基础是最重要的,只有完全掌握了基础知识,才能去学习一些深入的内容,融会贯通。
所有JS程序猿(甚至不止JS)都知道,数组(Array)是有length的,通过length属性,可以很方便的获取数组的长度。可以说,只要使用到了数组,就必会使用到其length属性。而Object对象是没有length属性或方法的,它确实没有存在的必要,因为人们只会在乎该对象能提供什么样的方法,而没有必要知道它到底有多少方法。的确,这确实不是一个普遍性的需求,因此ECMAScript中也...
图像处理基础教程链接1【基础教程】基于matlab图像处理(表示方法+数据结构+基本格式+类型转换+读取+点运算+代数运算)【含Matlab源码 834期】2【基础教程】基于matlab图像处理(读写+显示+运算+转换+变换+增强+滤波+分析+统计)【含Matlab源码 144期】3【基础教程】基于matlab图像增强+复原+分割【含Matlab源码 056期】
随着射频收发技术、微电子技术以及集成电路的发展,无线通信技术取得了较大发展,在设计成本、传输速率、可靠性方面均取得了长足进步。正在慢慢的发展到有线网络传输的水平。工业现场采用无线数据采集技术己成为新的发展趋势,可以解决以往传统数据采集中存在的问题,提高系统的适用性。像地铁、高铁、机场等场所的控制设备温度监测,使用窄带NB-IoT通信设备可以拥有更高的穿透性,保证系统的通信稳定性;因为此类设备一般处...
CHAT_ROOM所属分类:Linux/Unix编程开发工具:Unix_Linux文件大小:191KB下载次数:7上传日期:2016-05-25 16:57:56上 传 者:褚克珍说明:本代码是Linux编程,使用gtk编程,做成一个私人聊天室,有用到多线程、数据库等。源码分为用户端和服务器端两部分。由于是新手,第一次使用gtk,界面很糙,但功能大都实现。用户有超级用户和普通用户之分。加粗为超...
傅里叶变换我们生活在时间的世界中,早上7:00起来吃早饭,8:00去挤地铁,9:00开始上班。。。以时间为参照就是时域分析。但是在频域中一切都是静止的!可能有些人无法理解,我建议大家看看这个文章,写的真是相当好,推荐!https://zhuanlan.zhihu.com/p/19763358傅里叶变换的作用 高频:变化剧烈的灰度分量,例如边界 低频:变化缓慢的灰度分量,例如一片大海 所以一般情况下,由于图像中的高频分量与低频分量都存在,我们可以用傅里叶变换进行滤波。滤
您们好,7月16日将在“码农谷”举行第一家全国大学生算法编程设计大赛,我想请您和您身边学编程的同学,朋友前来参加,自学编程的和已经在外面已经参加工作的编程师(一般情况下都忙)也都可以参赛。看看谁有兴趣参加竞赛会让整个人变得自信,同时有有奖金,有证书,有荣誉作为人生的铺垫,也可以趁此机会跟同行编程师一起交流一起学习。这是你们的人脉。有了以上这些你在以后的职业生涯起
C语言菜鸟教程https://www.runoob.com/cprogramming/c-tutorial.html标识、运算符标识符一个标识符以字母 A-Z 或 a-z 或下划线 _ 开始数据类型的后缀 ->运算符 叫做“指向结构体成员运算符,是运算符*和运算符.的结合例:(*a).b 等价于a->b可以用new_node->value =10 来代替(*new_code).value =10MDK的C语言基础位操作清零与..
(一)C8050F96x 的内存分配 最近由于公司要求,使用到了C8051F96x系列单片机,研究了一段时间,整理了一下思路,写了一个简单的串口升级程序,网上的资源相对比较有限,也算是走了一些弯路,但是总体测试功能还算是很完美。准备下一下简单的教程,也算是给需要的人一个完整的升级流程教程。首先我们需要了解一 下C8051F9系列的内存结构,通过一下表可以看到,整个内存分为几个部分(以C8051F964为例)。LOCK Byte: ...
Linux环境下的软件安装,并不是一件容易的事情;如果通过源代码编译后在安装,当然事情就更为复杂一些;现在安装各种软件的教程都非常普遍;但万变不离其中,对基础知识的扎实掌握,安装各种软件的问题就迎刃而解了。Configure脚本配置工具就是基础之一,它是autoconf的工具的基本应用。'configure'脚本有大量的命令行选项。对不同的软件包来说,这些选项可能会有变化,但是许多基本的选项是
windows(win10)下Workerman运行报错:Call to undefined function posix_getpid() in ……\Workerman\Worker.php问题原因posix_getpid函数依赖于POSIX扩展,而POSIX扩展不支持在Windowns中使用。
Android中的各种模块,无论是APK应用、可执行程序还是jar包,都可以通过Build系统编译生成。在每一个模块的源码目录下,都有一个Android.mk文件,里面包含了模块代码的位置、模块的名称、需要链接的动态库等一系列的定义。
UMLOrderComparator/** * {@link Comparator} implementation for {@link Ordered} objects, sorting * by order value ascending, respectively by priority descending. * <p>有序对象的比较实现,按顺序值升序或优先级降序排序.</p> * <h3>{@code PriorityOrdered} Object