Ru-Board.club
← Вернуться в раздел «Прикладное программирование»

» Need Java-help или первые шаги в Java-программировании.

Автор: AlexRider
Дата сообщения: 10.12.2007 18:29
Ну "втемную" советовать сложно Да и последный таймер я делал больше года назад, но могу дать общую рекомендацию. Таймер должен только "тикать" и по тикам дергать функции других обьектов, которые уже будут к чемуто доступаться, изменять и т.д.
ЗЫ советую прочитать какюнибудь книжку про паттерны проектирования.
Автор: vndovr
Дата сообщения: 13.12.2007 22:01
Можно делать так:

Код:
package com.sample.timer.task;

import java.util.Timer;
import java.util.TimerTask;

/**
* Base class that can be extended from any other class
*/
public class SampleTimerTask
{
public int [] _data;

/**
* Default constructor
*/
public SampleTimerTask()
{
super();
}

/**
* Inner class that has access to SampleTimerTask data
*/
class InnerTimerTask extends TimerTask
{

public void run()
{
System.out.println(_data);
}

}

/**
* TEST function
*/
public static void main(String[] args)
{
try
{
SampleTimerTask stt = new SampleTimerTask();
new Timer().schedule(stt.new InnerTimerTask(), 1000L);
}
catch (Exception e)
{
e.printStackTrace(System.out);
}
}
}

Автор: AlexRider
Дата сообщения: 13.12.2007 23:49
vndovr
Такое решение не совсем подходит, т.к. в исходной задаче надо дергать метод класса унаследованного от Frame.
Поэтому вместо public int [] _data; лучше сделать чегото типа public MyFrame data. Соответственно передавать его в конструкторе и в таймере дергать data.doSomething().
Автор: Zlatogorov
Дата сообщения: 18.12.2007 13:33
Для таймеров есть QUARTZ .
Прописывается временной паттерн и создаётся scheduling, и всё, остальное он берёт на себя.
К примеру :
"0 0/5 14 * * ?"     Fire every 5 minutes starting at 2pm and ending at 2:55pm, every day
Так что настройки очень гибкие.
Автор: HighwayStar
Дата сообщения: 21.12.2007 15:53
Сегодня наконец осинило, как сдеать таймер. Вот

Код: public void TimerRun(){
CutomTimerTask();
        timer.schedule(new TimerTask(){
            public void run() {
                TimerRun();
            }
            
         } , 1000);
    }
Автор: vndovr
Дата сообщения: 21.12.2007 23:39
AlexRider
Посмотри внимательно код - ты можешь наследовать этот класс от чего хочешь, т.к. сейчас он ни от чего не наследуется. А вложенный, нужного типа, имеет доступ к его полям данных.

HighwayStar
Это то же самое только у тебя inner класс анонимный. Суть та же.

Zlatogorov
Quartz очень хороший выбор, очень гибкий и с большим количеством настроек. Все зависит от задачи - если пишется приложение ориентированное на шедулинг или нужен встроенный шедулер enterprise-приложений - тогда must have без вопросов. Если речь идет о небольшом приложении или шедулинг - так, от случая к случаю - я бы не стал - просто стрельба из пушки по воробьям.

Задержка с ответом - работы вагон в конце этого года.
Автор: AlexRider
Дата сообщения: 22.12.2007 21:14
vndovr
Да, действительно, и куда я раньше смотрел.
Автор: MistrBin
Дата сообщения: 30.01.2008 23:16
помогите пожайлуста, только начал изучать джава програмирование:
1) подскажите хороший хелп по джаве на русском с примерами
2) помогите создать програмку, которая бы генерировала 3 случайных числа в диапазоне 900 до 925 + котрая бы считала сумму этих генереруемых чисел

посто уже целый вечер просидел, и не могу найти, понял что с помошью Math.random() а как диапазон поставить и чтобы 3 числа выводило не знаю((( помогите плиз
Автор: vndovr
Дата сообщения: 01.02.2008 22:40
1. Посмотри к примеру http://javagu.ru
2.

Код:
package com.ru-board.forum.java;

/**
* Class declaration
*
* @author Ru-Board member
*
*/
public class RandomSample
{
/**
* TEST function
* @param args
*/
public static void main(String[] args)
{
int one = (int)(Math.random() * 25 + 900);
int two = (int)(Math.random() * 25 + 900);
int three = (int)(Math.random() * 25 + 900);

System.out.println("Result is: " + (one + two + three));

}

}
Автор: dmka
Дата сообщения: 03.02.2008 09:27

Код:
int one = (int)(Math.random() * 25 + 900);
int two = (int)(Math.random() * 25 + 900);
int three = (int)(Math.random() * 25 + 900);
Автор: vndovr
Дата сообщения: 03.02.2008 21:17
Вау, какое многозначительное вступление...
Интересно что же именно в данном коде, как ответе на поставленный вопрос, натолкнуло на эту мысль?
Исключим использование java.util.Random - собственно, вопрос звучал о java.lang.Math.

Прошу...

Я, конечно, не ставил себе задачи написать наиболее оптимальный код, а просто показал как, в принципе, можно решить подобную задачу с использованием Math.random(), и со своей стороны вижу сходу с полдесятка особенностей связанных с данным кодом.

Но мне очень любопытно что заметил ты .
Автор: dmka
Дата сообщения: 04.02.2008 17:03

Цитата:
Но мне очень любопытно что заметил ты

Отсутствие циклов
9 из 10 индусов вместо того, чтобы написать for (int i=0; i<3; i++) делают copy/paste 3 раза
Автор: vndovr
Дата сообщения: 04.02.2008 23:54
далеко не все

Но я с ними согласен для случая, когда речь идет о малом количестве итераций и когда время необходимое на вычисление блока в цикле соизмеримо с временем необходимым для вычисления условий цикла. Причины просты:
(1) производительность,
(2) читабельность текста,
(3) объем исходного кода.

Если рассмотреть на данном примере и написать его через цикл, то количество исходного кода будет сравнимым (может больше, а может и меньше - смотря как написать ). Но производительность в любом варианте будет меньше, читабельность - как минимум не улучшится.

В принципе подобная рекомендация (разворачивать цикл с малым числом итераций в последовательные вычисления) относится к любым языкам, когда речь идет о производительности.

То что в данном случае есть несколько избыточных приведений типов - это ошибка с моей стороны.
Автор: MistrBin
Дата сообщения: 06.02.2008 00:47
псасибо большое)
а можете сказать зачем мы задаем параметр int если в принцыпе он по умолчанию так и стоит, просто пробывал при комплиляции ругается что-то но при запуске все роботает))
и скажите а при цыкле как? если нам надо 50 чисел вывести, то мы пишем
for (int i=0; i<50; i++) {
а дальше? как формулу написать??
Автор: Exwar
Дата сообщения: 08.02.2008 13:21
Сам начинаю учить Java. IDE - Eclipse.

int определяет перемеменную типа integer (целочисленная)

Для вывода чисел делаем такой loop:

for(int i = 0; i < 50; i++) {

System.out.print(i + " ");
}

Автор: MistrBin
Дата сообщения: 15.02.2008 21:53
public class Rand2
{
public static void main(String[] args)
{
    int b = 1;
    System.out.println(b);
    String b = "x";
    System.out.println(b);
}
}

помогите плз, как сделать так чтобы 1 раз вывело число 1 а второй раз, символ "х", что тут не правильно?
Автор: rkhodjaev
Дата сообщения: 22.09.2008 13:20
MistrBin
По моемому через цикл надо попробовать.
Народ начал изучать Java.Возникли у меня пару вопросов,кто-нибудь может дать совет.
1. Установил у себя JDK и JRE.
2. Думал на чем писать коды,нашел eclipse и netbeats.Котрый из них лучше,вчера начал с Eclipse'са.Или пока не поздно надо переходить на Netbeans?

Читаю книгу "Java Programing for kids,parents and grandparents"- Yakov Fain.Там есть примеры,некоторые из-них получаются,а некоторые нет.Не подскажите по примерам советы.
3.
public class World {
    public static void main(String[] args) {
     System.out.println("HI");
    }
}
Как здесь cлово HI распечатать в другом цвете и менять размер?Здесь в методе out надо аргументы(значения) искать?

Автор: los2
Дата сообщения: 24.09.2008 11:28
кто-нибудь может скомпилировать netbeans проэкт в *.jar файл?
Автор: NickOnToluca
Дата сообщения: 17.10.2008 18:26

Цитата:
кто-нибудь может скомпилировать netbeans проэкт в *.jar файл?

Это все, вроде, настраивается в самом NetBeans.

Подскажите, почему не срабатывает

public void Calc() {
if(jTextField1.getText().equals("")) Exit; ...} ???

на выражение jTextField1.getText().equals("") говорит "Not a statement".

Короче КАК ЗАПИСАТЬ УСЛОВИЕ "ЕСЛИ СТРОКА ПУСТАЯ, ТО..."?
Автор: rkhodjaev
Дата сообщения: 20.10.2008 07:34
los2
NickOnToluca
Может быть не в тему пишу.Но,есть ли у кого-нибудь книга по работе на NetBEAN'се?
Автор: Pisun
Дата сообщения: 21.10.2008 12:01
NickOnToluca
if !text.length()>0
Автор: Pisun
Дата сообщения: 21.10.2008 14:07

Цитата:
.
public class World {
public static void main(String[] args) {
System.out.println("HI");
}
}



это метод вывода в системную консоль из приложения не использующего графический интерфейс.
на экране вы таким образом ничо не напечатаете, соотвессно и аттрибутов размера цвета у таково приложения просто нет


Добавлено:

Цитата:
public class Rand2
{
public static void main(String[] args)
{
int b = 1;
System.out.println(b);
String b = "x";
System.out.println(b);
}
}


компилятор не обработает такой код по простой причине - вы пытаетесь использовать одну и ту же локальную переменную, переопределив тип.
жава так делать не умееет.
ошибка - duplicate local variable

просто сделайте имена перменных разными
Автор: rkhodjaev
Дата сообщения: 22.10.2008 07:14
Pisun

Цитата:
это метод вывода в системную консоль из приложения не использующего графический интерфейс.
на экране вы таким образом ничо не напечатаете, соотвессно и аттрибутов размера цвета у таково приложения просто нет

Я ошибся,там не слово HI,а просто с звездочками написать Hello. можно такое на консоли в Eclipse'са?
Автор: Pisun
Дата сообщения: 22.10.2008 10:31
ответ тот же.
решение в лоб систем.аутами выводить звездочки

system.out.println ("* * * ");
system.out.println ("***** * ");
system.out.println ("* * * ");



Добавлено:
сообще совет всем новичкам по букварям.
библия жавы - книжка Философия Java (Thinking in Java) брюса экклеля
не знаю какое сча издание актуально но для старта пойдет в принципе любое.

в любом случае рбаота с жавой - это постоянное изучение чево-нить - вещь акутальная для любой области. но в сравнении с другими языками програмирования - новых технологий просто масса и появляются чуть ли не каждый месяц.

на свинговые библиотеки и работу с апплетами стоит обратить внимание но особо не заморачиваться. это морально устаревшие дела. мало что пишется на сегодня в серьезных конторах на свингах хотя и имеет место быть иногда.
целевая направленность жава на сегодня - веб-девелопмент крупных и не очень проектов. в связке толкову девелоперу необходимо уметь работать с базами данных, знать xml, xhtml и массу сопуствующих вещей.
могу сказать одно - став боле мене грамотным специалистом, без работы не останетесь ближайшие лет 20

вот пример технологий и тулзов для достаточно крупного проекта

Personal role in the project: software developer.
Platform: Java 5;
Software tools: Rational Application Developer 6.0;
Technologies: JSF, XHTML, XML, JavaScript 1.2;
Frameworks: MyFaces 1.1.3 (open source Jakarta implementation of JSF);
VCS: CVS 1.11;
App. server: Apache Tomcat 5.5.18;
Database: PostgreSQL 8.11;
OS: Windows XP/Linux.


бояццо ничо не нужно, на самом деле все не так уж страшно

Добавлено:
и кстати мое имхо - начинайте работать сразу с Eclipse
причины - союз jboss, ibm, sun и eclipse - все достаточно унифицировано и умея пользоваться еклипсом - большого труда не составит юзать и WSAD и RAD как среду разработки, так и rational rose как среду проектирования и моделирования.
розу юзают аналитики для создания архитектур, грамотный девелопер должен уметь читать uml-диаграммы( вот еще одна нужная технология и создавать самому, чтоп када-нить стать лид девелопером а после аналитиком или архитектором


написание кода в блокноте и запуск под jdk - дело хорошее. но сетки среда избавит вас от ненужных ошибок компиляции, которые однозначно будут допускаться.
по хорошему достаточно недели пописать в блокноте без подсветки синтаксиса чтоп немножко набить руку и научиться понимать стек-трейсы в консоли с информацией об ошибках.
Автор: rkhodjaev
Дата сообщения: 22.10.2008 15:14
Pisun

Цитата:
решение в лоб систем.аутами выводить звездочки

Спасибо, не догодалься как то
Спасибо и за советы.

Цитата:
библия жавы - книжка Философия Java (Thinking in Java) брюса экклеля

У меня есть это книжка на инг,а если на русском данная книжка?

Цитата:
на свинговые библиотеки и работу с апплетами стоит обратить внимание но особо не заморачиваться.

Да апллеты меня не интересують,а вот swing не очень хорошая вещь что ли?

Цитата:
необходимо уметь работать с базами данных,

100% это хорошая вещь,хочу изучить именно это!


Цитата:
начинайте работать сразу с Eclipse

начал,но книжку не нашел какую нибудь и остановился.Сейсач сижу на NetBEAN,но тоже книжек нет.Если у тебя че нибудь по этим вещам?
+ Мне один друг сказал,с базой если хочешь работат то лучше изучить Hibernate,че скажите на это?

Спасибо за очень полезные информации.
Автор: Pisun
Дата сообщения: 22.10.2008 15:42

Цитата:
У меня есть это книжка на инг,а если на русском данная книжка?



http://www.google.com/search?source=ig&hl=ru&rlz=&q=%D1%84%D0%B8%D0%BB%D0%BE%D1%81%D0%BE%D1%84%D0%B8%D1%8F+java+%D1%81%D0%BA%D0%B0%D1%87%D0%B0%D1%82%D1%8C+&meta=


Цитата:
вот swing не очень хорошая вещь что ли?

вещь хорошая но морально устаревшая.
из 10 жава-проектов приходящихся на буржуев - возможно один будет на свинге. все прочее - веб-приложения.

книжков у меня нет под руками сча, пользуюсь интернетом

про хибернейт на русском - http://www.javaportal.ru/java/articles/hibernate_annotations.html

но. про хибернейт пока забудь. для начала учись жаве
после - работать с базами прямым доступом из классов используя jdbc драйвера
а после уже хибернейт. потому что максимальная польза от его применения достигается в сочетании с рядом других технлогий, смысла которых ты не поймешь, не освоив основ.

учить нужно от простого к сложному. отсутствие базовых знаний - плохой помощник


Автор: rkhodjaev
Дата сообщения: 23.10.2008 06:59
Pisun
Спасибо за ссылку на гугл,скачал оттуда Философия Явы.2-е издание от брюса экклеля.Теперь не мучаясь буду читать на русском .

Цитата:
из 10 жава-проектов приходящихся на буржуев - возможно один будет на свинге. все прочее - веб-приложения.

Даже работа с базой?А веб-приложения через апплеты создаются,вроде да?Значит побольше об апплетах знать надо?

Цитата:
про хибернейт пока забудь. для начала учись жаве

Хорошо,пока только буду читать основу Явы.

Цитата:
учить нужно от простого к сложному. отсутствие базовых знаний - плохой помощник

Это точно.Ну если че я теперь буду чаще задавать вопрос по основе Явы... .
Спасибо Вам еще раз.
Автор: Pisun
Дата сообщения: 23.10.2008 10:35
не совсем верно.
работа с базой - это внутренний процесс. а приложение локальное или веб - непринципиально. можно ведь доступ к базе получать и локально а не через удаленное соединение.

апплет - это кусочек кода в страиваемый в браузер.

правильнее говорить об изучении сервлетов а дальше технлогий типа jsp, struts, jsf
Автор: TCPIP
Дата сообщения: 05.11.2008 18:54
Господа, посоветуйте, пожалуйста, что-то по настройке производительности виртуальной машины.
Задача банально проста - улучшить производительность такого приложения, как, скажем, Azureus. К сожалению, представляю себе работу с памятью на довольно-таки кулинарном уровне, так что не обессудьте.
Волнует, что выделенная неподкачиваемая (non-heap) часть памяти всегда больше изначальной (согласно статистике JVM).
Non-heap:
Initial: 32 Mbyte
Committed: 50 Mbyte
Used: 41 Mbyte
Max: 116 Mbyte

Правильно ли это? Не вернее было бы сделать, чтобы выделяемый объем был меньше или равен минимальному значению (Committed == Initial)?

Сейчас приложение запускается с параметрами
-J-Xmn48m -J-Xms96m -J-Xmx192m

По моим представлениям, -J-Xmn48m должно задать как раз миниальное значение новых объектов (new gen) вне подкачки (то есть именно Non-heap initial).
Однако, как я понимаю, я не прав и этот параметр устанавливает значение для Tenured gen (смысл которого, я, увы, не понимаю...)

Пока основываюсь на этом, этом, этом и этом документах.
Так как документы в некоторых местах содержат не всю информацию, трудно установить истину, без людей работающих с Java.

Жду ваших советов. Спасибо.
Автор: vndovr
Дата сообщения: 05.11.2008 23:26
? что понимается под подкачкой
Java сама не занимается подкачкой объектов - это делегируется на ОС. Эти параметры задаю начальное количество памяти доступное приложению и максимальное. -Xmn jdk specific - насколько я помню влияет на то как работает GC.
Один из наиболее полезных параметров здесь -Xmx - попробовать его увеличить.
Возник вопрос - а с чего предположение что проблемы именно с памятью?

Страницы: 12345

Предыдущая тема: Вакансия поддержка ПО


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.